Made Stepper Drum.

Brought Stepper Drum in line with Stepper Acid, essentially making
it from scratch.

IMPORTANT NOTE: there has been a hardware change during the addition
of this feature.  The gate, accent and clock source are now on
different pins.  Do not use previous versions of this software with
the new hardware, or vice versa.

Squashed commit of the following:

commit 4cd4e6b050b75c4c6b2086a9ed840f2c9e0d9f4b
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Tue Sep 11 22:08:51 2012 +0100

    No change.  Non-bugfixing note.

    All this time, it turns out the issue was simply that
    DIGITAL_PIN_CLOCK_SOURCE was wandering off and getting high, so to
    speak.  A simple pulldown resistor fixed that.  Stepper Drum *works*!

commit e9526a7baa16c1de83cb66e06278b86049d44ea2
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Sun Sep 2 00:01:53 2012 +0100

    No change.  Bugfixing note.

    Testing out a few different patterns, it seems that whether digital
    outputs 1, 2, both or neither are selected does change the volume
    the two connected drum modules are triggering at, although aside
    from leaving both instruments blank, it doesn't affect whether they're
    playing at all or not, only which one sounds loudest.  This leads
    me to suspect it might be a hardware issue, as the digital outputs
    don't seem all that digital currently.

commit f2809289acd46034fe6daf8f9c333817fabc2dac
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Sat Sep 1 23:25:45 2012 +0100

    Minor comment tidying, for consistency.

commit 1dda43a62f999035c537402981656d203fec1852
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Sat Sep 1 12:38:12 2012 +0100

    Bug fixed.

    The pattern still doesn't play correctly, but this is at least a
    step in the right direction.

commit 5ec3b3eb53f0e84298f71a8cda7fe9b487b283db
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Sat Sep 1 12:24:42 2012 +0100

    Minor tidying.

commit c01957c5d31ef12dd2047b1007d5eba0de697423
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Sat Sep 1 11:59:43 2012 +0100

    Refactored code.

commit f0597d286c877b9ea1092b03ff55a21c6b6ad8f5
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Sat Sep 1 11:55:07 2012 +0100

    Hopefully fixed pattern number display when stopped.

    Now that the pattern number that's been *requested*, rather than the
    live one, is the one that's shown in the LCD, we need to always
    update it, even when we're stopped and therefore the request is
    immediately fulfilled.

commit eeba3c9f8700fc8040701ca5a09242383df98079
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Sat Sep 1 11:50:51 2012 +0100

    Doubled number of patterns we can store.

commit 0e25a1c4ab385899b7d99939a52a481cfbed4d65
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Sat Sep 1 11:50:17 2012 +0100

    Bugfix: loading and saving patterns.

commit cf944a96964e298c2c6c7237598f96826cb6d9c3
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Sat Sep 1 11:46:52 2012 +0100

    Bugfix: patterns with no rows are invalid.

commit 3d604b25cdb3d04d6daca9d37e8f1b6c8a64aaa1
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Sat Sep 1 11:39:20 2012 +0100

    Closed triggers while stopped.

    Curiously, this seems to halt playback after a single hit.

commit e4b1eeb76271878bf5046451dcaafb2a5820d309
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Sat Sep 1 11:29:27 2012 +0100

    Bugfix for playing a sequence.  Still not working yet.

commit 11f114b8297df8c39a81f76336f009173205d035
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Fri Aug 31 23:11:09 2012 +0100

    Ahem.  Fixed.

    And it turns out you can now program in a drum pattern just fine!

commit d2902c632629836ab6e6596a5ea7ad8cbba754dd
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Fri Aug 31 22:59:00 2012 +0100

    Saving pattern after each note edit.

commit e66d5ce517bd5d4c596bb3663ea554d1f514f7c6
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Fri Aug 31 22:51:56 2012 +0100

    A bit more Pythonesque.  Still apparently wrong.

commit f14f989186c909018a30869f7101f5708f51e500
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Fri Aug 31 22:31:31 2012 +0100

    Consistently displaying information wrong.  Improvement?

commit c52a1f9e5e252b7cec75194f084d2c966cbe305c
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Fri Aug 31 22:02:59 2012 +0100

    Stepper Drum's serial interface doesn't need to know the current row number.

    Eventually the LEDs should xor the note and whether that row's active
    for LED lighting purposes, only when it's playing, but Stepper should
    do that internally.

commit 58bf1a5680816305a06af3de43222a2d96315aee
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Fri Aug 31 21:51:49 2012 +0100

    Updating serial interface.

    In amongst Nina showing me how she can measure the speed of sound
    in air using her oscilloscope.  :)

commit 9fe92ef609ca218e65a4a2ef410a3992896b3970
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Fri Aug 31 21:34:48 2012 +0100

    Starting work on implementing virtual LEDs.

commit 8f73d09f0b6bbe7f50fa62ab3d5dd3adf16c23be
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Fri Aug 31 21:22:25 2012 +0100

    Transferring selected instrument data; disambiguating variable names.

    Really, at some point soon I should skip this whole interim stage
    of sending all data over the serial connection, and instead get it
    to start talking to it like it'll talk to its own internal LEDs.

    Hmm, potential data corruption permitting, of course.

commit ec0c57d5c46f12fa70794cbbc87ae9a3d35420a3
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Wed Aug 29 20:27:04 2012 +0100

    More work on Stepper Drum serial interface.

commit 9f75953ff01dcf567e2ec227ac7234f65d4a52b8
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Wed Aug 29 20:12:16 2012 +0100

    Starting to remove unnecessary bits from Python Stepper Drum serial interface.

commit b62ed0a8dcf900e83e5df350b2189bd1209a1799
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Wed Aug 29 18:56:45 2012 +0100

    Removed more superfluous things.  It now compiles OK.

commit 872b0553ded020ae0ed9496640b107a9c19d9989
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Wed Aug 29 18:54:26 2012 +0100

    Tidying up output starting.

commit 3f524279f9e3827d0471fa948a169e115e80ece6
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Wed Aug 29 18:50:20 2012 +0100

    Tidied output.

commit edc3e7e1ae02be0d7579df784c9c404afd04ab4d
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Wed Aug 29 18:44:53 2012 +0100

    First attempt at bitwise logic based drum programming in this configuration.

commit f42f716a35afb681d0de8b6250289526a518d710
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Wed Aug 29 18:41:47 2012 +0100

    Removed ambiguity.

commit 53ac6edd8910af083f9b6492f73db4d407ea48b3
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Wed Aug 29 18:39:50 2012 +0100

    Tedious copypastas...

commit d9d9504e13ec5895be45172c60c17c0f32c66fa2
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Wed Aug 29 16:18:21 2012 +0100

    That's more like it...

commit 217ac09d3fd77836cfdfc2a9d77e060848adaa41
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Wed Aug 29 16:16:33 2012 +0100

    I haven't even used these in months...

commit 321206166354d26fc6ad239e095f52319e2aea25
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Wed Aug 29 16:10:34 2012 +0100

    Worked out rough spec for drum machine protocol.

    The reasoning behind the two hex digits is so that the various
    semantically important phrases in ASCII can't appear in drum patterns
    by coincidence, and to maintain readability for homebrew users /
    modders.

    From this point onwards, I really wouldn't recommend increasing
    MAX_NUMBER_OF_ROWS above 16 as control codes will start to clash.

commit f54c12ec87b8bdc5fe98905ed71ab4eafa530a43
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Wed Aug 29 15:56:07 2012 +0100

    Sequencer rewrite.

commit 53df8be1283af17692e2043fa4f5925b1f5be6fd
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Wed Aug 29 15:46:18 2012 +0100

    No slides?  No last row number!

commit c30b138b1fb83a43dcd0237d2c4fedf9ff6756a2
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Wed Aug 29 15:45:12 2012 +0100

    Starting work on loading/saving pattern refinement...

commit fcd9665b33f3d254a74f256b6b050814f164c2c3
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Wed Aug 29 15:32:33 2012 +0100

    Started removing unnecessary things.

commit 2a247f21e63b5c8c3801925a8de872a1f82d3766
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Wed Aug 29 15:14:56 2012 +0100

    Moving hardware around for consistency.

commit 8b23cee8e66a397f594244ff9165bbb9f48e59db
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Wed Aug 29 15:08:48 2012 +0100

    Removed unused constant.

commit 58dfeebcce59ed85cf47fa06de65fe41b4281048
Author: Zoë Blade <zoe@bytenoise.co.uk>
Date:   Wed Aug 29 15:08:04 2012 +0100

    Started work on Stepper Drum in C.