Changes to address IFileSystem.Watch method addition

Absorbs the new IFileSystem interface. This change is to just address the breaking change introduced in IFileSystem.
Razor has to do the necessary changes to subscribe to the Watch event for expiring the modified files.
Remove use of `Assert.DoesNotThrow()`
- no longer in xunit :smiley:
Fix an inadvertent 204 in activator tests

On a web server, this test ends up giving back a 204 because of the MVC
behavior when an action is declared to return void. The fix is to use
EmptyResult.
Adding a pattern for returning 'unhandled' exception information via
middleware.

This should be used where posssible instead of throwing an exception and
catching in a test, as that only works in memory.
Adding an abstraction for server independence

This change introdues the ITestWebSite as an abstraction for using a web
site in a functional test without knowing if it's in memory or not.

The current implementation switches based on an environment variable. If
set, it tries to read the file pointed to by the env-var to get a list of
sites and base URLs. This is a bit ad-hoc for right now but will allow us
to get up and running on IIS and other servers.
Updates to tests to support running on real servers