New: Put supplied bar numbers in the label field

This commit adds the ability to put non-consecutive bar numbers in the measure 'label' field.

Note: This only happens on measures with an explicit 'ExternalBarNumberAsString' property. Applications wishing to re-construct the bar numbers as supplied will have to implement their own counting, starting at a measure element with a label attribute defined.
New: When a new Section break is defined, insert a <section> element
Fixed: Refactored accidental support

Refactored to a simpler accidental conversion model. This should still work the same as the previous model.

Also made the 'cancel' button actually work...
New: Using rgba() for colours instead of hex

RGBa is closer to how Sibelius encodes its colour information (in four discrete channels) even though the alpha channel is rarely used.

This simplifies the colour conversion system.
New: Changes to how some text is handled

Some text elements are now supported. More importantly, however, they are set with correct offsets measured in mm units.
New: Enhanced NoteRests with further attributes
Fixed: Remove unused parameter in _convertSpanningElements
Fixed: Spelled Appoggiatura wrong.
Fixed: Removing trace messages
Fixed: Lyric lines would get out of order

Previously, verse numbers were calculated by assuming that they were encoded sequentially. However, it turns out that Sibelius can encode the verse number in any order. This led to a bug where the verse numbers could be swapped.

This commit introduces a new way of tracking the lyric lines. It now parses the verse number out of the LyricItem StyleID and uses that for the verse number. This is more in line with how Sibelius differentiates the verses internally.

Also, this commit introduces a new function for _SplitString which splits a string into an array of characters if delimiter is false.
Misc. cleanup, formatting, commenting
New: Ties are encoded as attributes on notes, as well as milestone elements
Fixed: Slightly optimize loop

Instead of checking to see if an object is a Line, only iterate over the Line objects
Fixed: Slightly optimized Volta bracket encodings

Removed a couple loops over all the objects so hopefully it's a bit faster now.
Fixed: Notes and Grace Notes could have the same ID

Since Grace Notes can appear at the same position as regular notes they could be given the same ID. This commit fixes it so that grace notes will have a unique ID.
Fixed: Clef handling is now compatible with MEI 2013
New: libmei methods for working with child elements
Fixed: sibmei_batch will work with musicxml files
Fixed: StaffDef/StaffGrp now creates valid MEI
Fixed: Lyric alignment was incorrect

This commit fixes lyric alignment to prevent lyrics from being aligned to different voices or to rests.