Rework the dir structure to support separate APIs dirs

This will help segregate the code that implements the system API
(to control the base system) and the custom API (that will be
application specific).

Also introduce some notion of API versioning (Not fully implemented)