Add caching option to ViewModelViewHost in winforms to improve performance

This PR adds an optional caching behavior to the Winforms `ViewModelViewHost`.

Problem:
When the ViewModelchanges often, but is always of the same type, everytime a new control (and handle) is creating and the old one is disposed. This has  a negative impact on the performance.

Solution:
By adding setting the `CacheViews` property to true on the `ViewModelViewHost`, the control presenting the viewmodel is only created new when the ViewModel Type changes

The default behavior can be set using the static `DefaultCacheViewsEnabled` property on the `ViewModelViewHost`.