Implement Waltz syllabus
This patch adds the syllabus steps for the Waltz, including methods for selecting a random step and selecting all valid previous/next steps.
To begin, assign one of the classes to a variable e.g.
step = NaturalTurn
You can now find all possible previous/next steps e.g.
next = step.next() # this will give you a list
prev = step.prev() # this will give you a list
TODO:
- There needs to be a better API for importing in other modules. This
could be a class e.g.
Routine
which you can call to get a routine. - At present, uninitialised classes are used for everything. We will later want to persist information e.g. for steps with variable amounts of turn, or even different dances (Quickstep, Foxtrot etc.)