Replaced encode/decode_signed_byte() with types.signed()/unsigned().
Removed MidiFile.__iter__(). (It wasn't clear what it was for. play() is better.)
Added functions to encode / decode tempo (in meta messages).
Rewrote meta messages. Save doesn't work yet.
Change how meta messages specs are added.
Backend() can now be called with path=None and $MIDO_BACKEND can be ''.
Added todo.
Meta messages now save properly.
Now raise ValueError if a reset message (0xff) is encountered in MidiFile.save().
MidiFile.save() now refuses to save all realtime messages.
Added tests for meta message encoders / decoders and fixed some bugs.
Renamed meta message byte to type_byte.
Added some todo items.
Changed 'division' back to 'ticks_per_beat'. (It's more descriptive.)