Modify parser to group html begin/end elements.

- Added a "Tag" block type.
- Wrapped all begin/end elements in a "Tag" Markup block.

#75
Fix tests to work with new TagBlock parsing format.

- These are the fixes to the tests that could not be fixed by altering the core parsing code base.
- Most involve adding TagBlock's, breaking out existing markup blocks and altering some AcceptedCharacter formats.
- Was able to loosen the restrictions on AcceptedCharacter's to allow the body of html tags to accept any character.

#75
Add TagHelper registration system.

- This registration system accepts tag descriptors that it then uses to feed requests for tag helpers.
- Added some infrastructure pieces that are used to build up valid tag helper descriptors.

#70
Validate Tag Helper registration system functionality.

- This involved adding tests to cover, Register, Unregister and GetTagHelpers methods on the default tag helper provider context.

#70
Validate Tag Helper attribute code generator functionality.

- This involved adding tests to cover the various functionalities of how tag helpers attribute code generators create code that involves newing up attributes.

#70
Addressed code review comments
Addressed code review comments.