Nancy module split

Splits NancyModule into INancyModule and NancyModule, with the framework only relying on the properties present in the interface.

Also added a sample of a new nancy module type, which uses attributes to define routes, to show the flexibility this brings.