Issue#53 fix

Unit test and fix for issue #53, where attribute names starting with `:` and `_` characters failed to parse.

I refactored `XMLUtil::IsAlpha` and `XMLUtil::IsAlphaNum` into `XMLUtil::IsNameStartChar` and `XMLUtil::IsNameChar`, since they didn't have any other use outside of performing name and token character validity tests.

As a bonus, element names beginning with digits will now correctly **fail** to parse. Previously, only attributes names beginning with digits failed to parse.