Add support for per-class view-context-preservation

@shajith @jish

The `VIEW_PRESERVES_CONTEXT` flag is global, which makes it difficult to upgrade a large application. This adds support for view classes to define a class-level `preservesContext` property that overrides the flag. It also adds a new value for the flag, "warn", which will warn for any view that *doesn't* declare that it preserves context. If `VIEW_PRESERVES_CONTEXT` is `true`, it cannot be overridden.