Updated view location convention order

The conventions will now use the most strict convention first and
work its way back to the less strict one. The new order is

  - views/modulepath/viewname
  - views/modulename/viewname
  - modulepath/viewname
  - modulename/viewname
  - views/viewname
  - viewname

This is a breaking change!
Split IStartup into two interfaces

The IStartup interface was removed and replaced by two new interfaces
called IApplicationStartup and IApplicationRegistrations. The former
lets you run code on application startup and the latter lets you register
stuff into the container at application startup. The registrations are
performed before the startups

THIS IS A BREAKING CHANGE
Improved startup/registration seperation

Made sure that the registration tasks where picked up by the bootstrapper
and added a test that ensures the registrations are preformed before the
startups.
Cleaned up NancyBoostrapperBaseFixture code
Improved on the allowed characters in a route

Now all unreserved characters of RFC 1738 are allowed in non-capture
segments as well.
Renamed a test to make it more clear
Made RequestHeaders writeable

You can now change the value of the request headers. If you assign a header
the default value of the return type (for instance null for a string) then
the header will be removed from the keys collection until a new value is
assigned
Updated modulePath based conventions

They will not return an empty string if the modulepath is null or
empty. When a convention returns an empty string then the convention
is ignored by the DefaultViewResolver and the next convention is
invoked instead
Changed auto registration behavior

The DisableAutoRegistration function on the ConfigurableBootstrapper
has been replaced by EnableAutoRegistration. This means that with this
patch, the auto-registration will be disabled by default instead of
enabled. The reason for this are primarily for performance but also
to help make tests be more implicit in setting up the context in
which they execute.
Renamed FakeNancyModule to ConfigurableNancyModule
Updated ConfigurableNancyModule

Added support for Patch and Options routes + renamed the nested
configurator class to align with the new name of the module class
Made member readonly
Bit of boyscouting and removed dead code
Moved type out of the Fakes namespace

The ConfigurableNancyModule is now located at the root of the
Nancy.Testing assembly.
Ignoring Nancy.Testing assembly

The AppDomainAssemblyTypeScanner will not scan Nancy.Testing when
it's been added to the default ignored assemblies. This prevents
it from finding stuff like the FakeNancyModule
Removed xunit dependency

The Nancy.Testing assembly used to have a dependency on Xunit, which
forces users to reference xunit no matter what framework they used
for their tests. The dependency was replace by our own Assert methods.
Removed xunit depenency from nuspec
Tying up some loose ends

- Added support for IComparable in the AssertEqualityComparer
- Added XML comments
- Moved classes to their own files
Merge pull request #652 from thecodejunkie/nancytestingremovexunitdependency-651

Removed the dependency on xunit in Nancy.Testing
Merge pull request #648 from thecodejunkie/nancytestingexcludefromautoregistration-647

Ignoring Nancy.Testing assembly