Several improvements for view rendering

1. Added ModelView class, which eliminates the need for custom View classes in many cases
2. Enabled explicit configuration of ViewRenderers within ViewBundle. This allows ViewRenderers to be configured by the end user.
3. Modified FreemarkerViewRenderer to allow custom configuration.
4. Enabled per-request customization of  FreemarkerViewRenderer that allows users to register custom functions and global variables.
5. Introduced the notion of ModelContainer, which allows model objects to be root context for template evaluation