Complete refactor of sigil's API

* server is now called router
* added test cases, much better
* added a serializer