Working and functions and refactored tests

Changed tests to use Assert.That

Added ability to fake SPWebTemplateCollection with out faking a site.
The site is faked by faking the SPWebTemplateCollection

Fixed ability to fake many WebApplication via the GetObject on the
SPFarm Fake