Initial cut of splitting out NancyModule

The idea being that the "core" functionality only relies on
the base, with the minimal amount of properties on it, leaving
the end users free to implement their own route builders etc.
Initial switch to INancyModule from base class
Moved pipeline creation to NancyModule

Obviously it wasn't going to work in the builder as
you add to the pipelines in the module ctor :P
Added demo project (non-working)
Fixed bug in the cache.

It was re-running the select statement and makign the
assumption that would return the same instances as the
original - which in this case it wasn't
Added filter code
Fixed sln configs
Updated comment
Fixed comment
Added editor browsable attribute back in
Fixed comment
Merge pull request #906 from grumpydev/NancyModuleSplit

Nancy module split