Merge pull request #963 from thecodejunkie/rootpathproviderchange

Changed RootPathProvider to return an instance
Added application registation base
Tweaked base class
Updated razor registrations to support overriding
Removed explicit razor configuration registrations from demo project
Made registration classes check types

Will throw (with detailed error message) if any of the
implementing types is not assignable from the registration
type.

Also added unit test coverage
Fixed typo