Adding class to transform a song into a shuffled version
SongParser now shuffles song if flag is set in source file
Correcting tempo change when shuffling/swinging a song
Removing extra whitespace
Extracting method
Adding back end support for swinging with an 8th note rhythm
Fixing test
Renaming SongShuffler -> SongSwinger

In advance of using 'swing' terminology instead of 'shuffle'
Fixing 8th note swing conversion when slice is one tick long
Adding additional tests for 8th note swing conversion
Adding additional tests for 16th note swing conversion
DRYing tests
Making odd-length 16-swung rhythm conversion be consistent with 8th

That is, make the single tick 2/3 of 8th note, rather 1/3
Making test method names more accurate
Changing 'shuffle' option to 'swing'

Also allowing to have either a value of 8 or 16 (for an 8th note
or 16th note swing).
Adding SongParser tests for a song with swung 8th note rhythm
Validing the swing rate, must be either 8 or 16
Fixing comment
Allowing Song models to have a non-integer tempo

To allow swung songs to have a more accurate tempo after they
are transformed.
Allowing swung songs to be converted to a fractional tempo

To avoid them drifting out of time due to an inaccurate
integer tempo.