TypingFont and event null checks improvements

TypingFont:
- Added CharacterTyped event to allow detection of each new character as
it is typed
- Exposed DelayTime as public to allow changing of the typing rate
without re-creating the font
- Fixed reset bug that caused first character to be skipped (index was
set to zero instead of -1)
- Changed TypingState enum type to FontState to conform to other fonts
in the library; provided legacy support for TypingState type (now
obsolete)
- Provided better example for TypingFont, including event-based
sequencing of multiple font objects via a single event handler. Example
also includes changing colors on each letter change, and randomizing
typing speed.

Other:
- Improved null check on event handlers to account for race conditions.
Affected classes:
- BaseGameObject
- StatefulSequence
- DropInFont
- FadingFont
- SlidingFont
- TypingFont
- Panel
- AchievementPanel (in samples)