Tag Helpers: Add ModelExpression code generation

- Sealed the ModelExpression.
- We use the stringified version of the ModelExpression type name to detect ModelExpression properties on TagHelpers. This is so the MvcRazorHost can work in tooling and in runtime.
- Created a GeneratedTagHelperAttributeContext to represent the specific stringified versions of the ModelExpression assets.
- Created an MvcTagHelperAttributeValueCodeRenderer to modify rendering of ModelExpression properties.

Added tests to validate attribute value rendering
- Exposed internals from Mvc.Razor.Host to Mvc.Razor.Test so it can use the MvcRazorHost override that takes the IFileSystem.
- Added end-to-end code generation tests for TagHelpers with ModelExpression properties.

#1241
Being empty is expected behavior for now. `TagHelper`s don't support DesignTime intellisense pieces so we don't generate anything for them during DesignTime.

That will be done in this issue: https://github.com/aspnet/Mvc/issues/1252.