Disentangle SchemaInfo classes from Dancer

The work in this branch removes makes the SchemaInfo hierarchy stand on its own.

The benefits are:

* Code separation (improves code quality and eases bug hunting)
* Testing - SchemaInfo part can be tested on its own

Please check this out so we can merge it soon into master.