General Work

Refactoring:

* Moving handling of the routing table generation into specific classes
  (`Engage\Routing\TableManager` and `Engage\Routing\TableBuilder` respectively)

WIP:

* Added a basic caching system
* Started working on the tests system

Misc:

* Moved the work folder from `/app/work/` to `/work/` as this prevents
  class mapper confusion by composer when it indexes the `app` folder