Change TagBuilder Attributes and HTML Helper dependencies to be case insensitive.

- This involved adding the StringComparer.OrdinalIgnoreCase comparer to the TagBuilder's Attributes dictionary.
- Added tests to validate that all methods that made use of TagBuilder.Attributes abide by the new ignore case mechanic.
- Added two sets of tests to validate the new functionality of Object => Dictionary HTML helper tests.
- Modified a functional test that utilizes HTML Helpers to provide same attribute-different case objects.
- Fixed existing HTML helper tests to account for new ordering of attrbutes (dictionary no longer adds key value pairs, it sets them).

#1328
React to case insensitive TagHelperOutput.Attributes.

- Cleaned up some existing bad code that worked around case sensitive TagHelperOutput.Attributes.
- Modified MergeAttributes to be case insensitive when it comes to merging class attributes.
- Added a test to verify the new MergeAttribute case insensitive class merging.

aspnet/Razor#186
Modifying ArgumentNullOrEmpty message to be consistent with Mvc 5 \
testing code.
Don't lock metadata references
Change `ViewDataDictionary` copy constructor to ensure `ModelMetadata` is
 never that for `object`
- `ViewDataDictionary<TModel>.ModelMetadata` was for `object` after base
 copy constructor got value from `ViewDataDictionary<object>`
- problem led to #1426 symptoms
- with copy constructor leaving `base.ModelMetadata==null` more often,
 `ViewDataDictionary<TModel>.ModelMetadata` usually tracks `TModel` if
 `Model==null`

nit:
- fix existing comment in main `ViewDataDictionary` copy constructor
Add "/home/nulluser" view to MVC sample
- exercises display and editor helpers when `Model==null`
Add more unit tests of `ViewDataDictionary` copy constructors
Merge branch 'release' into dev
* Porting Hidden and HiddenFor unit tests

Partial fix to #453
Reacting to Roslyn version changes
Merge branch 'release' into dev
Change logging in Mvc to log with TraceType.Verbose
Fixes #1457
Merge branch 'release' into dev
Fix for #1448 - ViewComponents must be public top-level classes

ViewComponents and Controllers now follow the same rules exactly for what
types of classes they can be.

Also corrected a bug in a test for controllers. Closed-generic types can
be controllers, the test was wrong.
TODO removal part 1 - ActionExecutorTests
Fix for #1442 - Find better names for ApiExplorerProperties

Taking the suggestion here to move these to a sub-object. This is future
proof in the event that we need to capture more data for ApiExplorer, and
reads better.
Added a functional test for view precompilation
Revert "Added a functional test for view precompilation"

This reverts commit 310feeb826b3a5ea489925ca83628e96f8af5817.
Adding functional tests for Filters.
Adding the following:
1. ShortCircuiting of Filters.
2. Throwing Exception from different filters.
3. Changing the Order of Controller class.