Made quite a few changes to how notes will be selected.

Before the tones (ChordTone, ColourTone, ApproachTone) would be
responsible for retrieving/selecting the next note (based on a previous
note). First of all it makes the tone classes less cohesive. Secondly,
in the future I would not want to base my next note choices on the
previous note (I may want to look further ahead in the future), so the
current way is too coupled to that idea. Now we have a NoteSelector for
each ToneToNoteConverter. This way the tones just return a list of
suitable notes and then the NoteSelector can apply it's plan to it.