Beminfo 366

* Support new library data format with any numbers of docs or custom nodes
* Large code refactoring for data compiling.
* Make fat models that can build their own childs
* Fix router middleware to support current for custom nodes
if we really don't need this check let's refactor the code to be
```js
if (route) {
    req.route = route[0].getName();
    req.params = route[1];
}
```