Add @removetaghelper directive.

- Added parsing recognition of the @removetaghelper directive.
- Added TagHelperDescriptor handling: @removetaghelper will cause the system to ignore TagHelpers that are added via @addtaghelper.
- Added Chunk generation, this involved building a CodeGenerator (soon to be named ChunkGenerator) that pulled out the stringified @removetaghelper lookup text which it then uses to construct a RemoveTagHelperChunk.
- Modified CodeVisitors to now understand RemoveTagHelperChunk's.
- Added code generation, this involved creating a dummy string in order to give the @removetaghelper "..." coloring.

#112 

Split out tests into a separate PR to reduce noise (lots of tests): https://github.com/aspnet/Razor/pull/205

/cc @pranavkm 
Since we do a `Contains` operation on this value, I'd recommend changing this to a `HashSet<TagHelperDescriptor>` . Depending on the implementation of the resolver, we might end up create the descriptors multiple times if we don't materialize the `IEnumerable`