Preserve workout data (samples, routes, events) when trimming
Previously trimming deleted the original and created a blank workout,
losing all heart rate, energy, distance samples, routes, and events.
Now saveTrimmedWorkout fetches associated data, recreates it on the
new workout, and builds routes before deleting the original.