Bidi + associated refactorings

Introduced BiDi as a routing engine to replace Compojure. This removes a large amount of macro complexity for instrumentation and testing. This will also simplify HATEAOS for discoverability.

I also took this opportunity to reorganise components and namespaces to work with the emerging patterns. This included restructuring the directories.