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