Added cacheViews paramter to composition engine.

-This new parameter should only be used with singleton view models
(ideal for phone apps and smallish desktop and tablet apps) where the
the main navigation only composes a small set of screens.  When set to
true, the composition mechanism will keep old views present in the dom.
When a view model is activated, it will attempt to pair it with an
existing view. If it finds one, it will not need to parse the html,
apply bindings or insert it into the dom. It just performs the
transition. If one is not found, then it will create it and add it.
-Updated the navigation sample and the vs starter template.
-Several modules (as well as the entrance transition) were enhanced to
enable this.
-There were no breaking public api changes, only internal changes.