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
maybe you can check for `!conditions` and return to avoid extra indentation?