Natively supporting typed template

Hi,

I made a few modifications to natively support a typed view model, instead of having a dynamic Model property or a custom template inheriting from TemplateBase. This is particularly usefull if you extract your template in a cshtml file, allowing you to get syntax completion within visual studio. 

The implementation is not what I would call clean (I had to use method/property hiding) but doing it the proper way would break the compatibility of your API. 

You can have a look at the unit test to see how to use the typed template.

Regards,

Julien