Initial hackery to change module registration / lookup

We were registering every module on every request, which is slow
and wasteful when we only resolve one per request. Changed it so
now we store the module type rather than the "key", and with the
per request container bootstrappers we register a single module
per request, then resolve it.

Not 100% sure if we should split out the register and resolve calls
in the classes that derrive from the request container base class
(currently it expects them to register and resolve in the GetModule
method)

Currently non-request container bootstrappers are broken.
Cleanup / fixes
Fixed aspnet bootstrapper
More fixups
Fixed issue where having no root route caused a 500
Merge pull request #994 from grumpydev/NoRootFix

Fixed issue where having no root route caused a 500
Fix for "invalid characters in path" when using browser

If a route returned a model of a type who's full type name
contains characters that aren't valid path characters (e.g.
anything with generics), and the view processor was selected,
then the view locator would blow up with invalid characters in
path.
Merge pull request #996 from grumpydev/InvalidPathFix

Fix for "invalid characters in path" when using browser
More Fixups.. zzz
Replaced hard-coded Windows path character with Path.DirectortySeparatorChar which prevented diagnostics pages from working on OSes with "/" as path separator.
Merge pull request #997 from dchrno/master

Changed windows directory separator to Path.DirectorySeparatorChar
Updated assembly scanning and auto register logic

Now the ADATS defaults to only scanning assemblies with a
reference to a Nancy assemly (and nancy itself), and the
autoregister ignore list is the same as it used to be.
Removed unused props
Fixed typo
Test fixups
Fixed failing tests
Test fixup
Changed module loading behaviour in the ConfigurableBootstrapper

Now instead of loading every module it can (which is significantly
more than before), it will only use specified modules unless
AllDiscoveredModules is set, in which case it will revert to the
old behaviour.
Fixed remaining tests

Added new methods to ADATS for easily adding assemblies to scan.
Moved namespace declarations