Added all the functionality.

Now that it actually plays something, I've added all the functionality
that lets you play, stop, copy, move between and program in patterns
in the sequencer.  This is what the interface will let you actually
use.

Squashed commit of the following:

commit d5db42c6d6053136bb5102b044eae320d19db15f
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Wed May 30 21:35:14 2012 +0100

    Added transposition feature (all still untested).

    Note that if I ever implement this in a multichannel sequencer (that
    we actually build that way this time), I should probably make this
    channel specific, so they can be transposed independently of one
    another.

    I also changed some instances of "char unsigned" to "unsigned char"
    for consistency.  I should find out which is the official way around
    to express this, if there is one, and change them all to that.

commit ecfa27cc03e6969b5338b1eee10e2e8971ed611e
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Wed May 30 20:48:48 2012 +0100

    Shuffled around input conditions.

    Trying to get them into a semblance of order: clock related, then
    sequencer related; decreasing something before increasing; putting
    decrements and increments together, then toggles back and forth
    together; putting run/stop first for tight timing / responsiveness.

commit 28aaf0735e42b906839b4c4959f79a6b9f3c613d
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Wed May 30 18:08:48 2012 +0100

    Added ability to change patterns.

    Except for the actual loading and saving part.  Which is arguably
    the most important and difficult part.  But otherwise, we're solid.

commit 12f32ff717835d83b43130e09ca32c763878e918
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Wed May 30 08:53:43 2012 +0100

    Added accent toggle, slide toggle, cursor movement.

commit 5505c5a7ba49f0a6d4f21924c9646b4d7cc64e0f
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Wed May 30 08:45:51 2012 +0100

    Added octave up/down feature.

commit 4efedd88cff305fac9ecd11d567f9973bf61a5c6
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Wed May 30 08:41:48 2012 +0100

    Added gate toggling; more usage of constants.

commit 72f06bf8fb4751f789b60431da5f78586938983f
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Tue May 29 23:14:35 2012 +0100

    More defining for clarity.

    Also a bugfix, changing non-sliding randomly generated notes from
    16ths back to 32nds.

commit 1d3c0d0e877af5d016dcd3b49978a8a61970c39b
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Tue May 29 23:08:11 2012 +0100

    (Hopefully) added ability to store a C note.

    Also defined more useful constants, for code legibility.

commit 0113836703ba87026030560909eaba9bdef4d3b4
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Tue May 29 22:47:49 2012 +0100

    Revert "Trying out different commenting style."

    This reverts commit 96e26d9fa4fc4b44bad5f7681e24f04d517e43fc.

commit 96e26d9fa4fc4b44bad5f7681e24f04d517e43fc
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Tue May 29 22:46:17 2012 +0100

    Trying out different commenting style.

    It looks like I should have several different levels of comment
    importance, as with HTML header types.  Identifying where the main
    loop is, is more important than identifying any of the parts within
    it.  But this comment style seems over the top, so I'll revert it.

commit 0c6aa89c31f5173cc924b112cb5ec3ba94157745
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Tue May 29 22:34:50 2012 +0100

    Allowed easy overriding of default tempo.

commit 751513b5bb1e4ee75ec3a815bfb8ef3d6e95e773
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Tue May 29 18:25:16 2012 +0100

    Replaced hardwired preset patch with a random patch generator.

    I don't know if I'll revert this, but for now, it's saving me from
    repetition.