Prevent TCX data truncation when using laps (#27)

This is fairly extensive refactor of the TrainingSession::toTCX
function to loop through samples instead of looping through laps, since
the latter results in trailing samples being left out.