Fix nested tags in script tag.

#115
Test nested tags in script tag fix.

#115
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 GetTagHelpers methods on the default tag helper descriptor provider.

#70
Removing Activator.CreateInstance call from CodeTreeBuilder
Updating release NuGet.config
Updating dev NuGet.config
Make CompleteBlock accessible to derived parser
Merge branch 'release' into dev
Fix for #91 - Turn some commonly allocated types into structs

These types are allocated for every state transition in the parser (State)
or every character that's read (character reference) and are fairly
compact. Turning them into structs will remove a significant number of unnecessary
allocations in the parser.

For our razor code generation benchmark, making these changes yields about
500-750ms of speedup (out of 40000ms) or about 1%.
Fix for #90 - removing Enum.HasFlags

This is a perf improvement of about 500ms for our razor code generation
benchmark on my dev box. That's about .8% of the overall execution time of
this benchmark.

This change will remove a bunch of unnessary allocations from the
parsing/code-generation path, and should improve responsiveness.

For reference Enum.HasFlags performs boxing of the enum value, and then
does a type comparison to see if the types are the same. This is
significantly more costly than a normal bitwise and comparison, and it
results in allocations.
Reviving support for instrumentation in CSharpCodeVisitor

Fixes #42
Modifying the signature of Instrumentation per discussion
Changes per PR comments