Implemented TabNote stems and beams

Alright, so here's the initial pull request. Let me know what you would like changed.

- Adds a `StemmableNote` class which `TabNote` and `StaveNote` now derive from
- Renames `noteGlyph` property to `glyph` in `TabNote` (possible confusion between the new `TabNote.glyph` and `TabNote.glyphs`; the former is for storing duration glyph data and the the latter is for storing the fret position glyph data)
- Extracted out a new method called `drawStem()` into `StemmableNote`. Assigns the created `Stem` object to a `stem` property on the note, so you can access the stem properties at a later time after drawing
- `Beam.draw()` now uses the new method `StemmableNote.drawStem()` instead of its own stem drawing logic.