Work in progress: create a plugin architecture for things to fit in

Probably not quite ready yet, still lacking some test coverage, but almost there.

`get_endpoints` should take `token_id` as the first argument and not `tenant_id`. This is resulting in endpoints with the `token_id` as against `tenant_id`. I think this should be the reason why the Autoscale scripts must be failing.