Remove/Consolidate HasSteps and similar classes #19

- Removes HasOctaves
- 'octaves' is specified to intervals (and documented alongside 'separate' etc)