[WIP] Client distributor

To be honest I am planning to test this api with azure to see if it holds up so we can tweak it to meet all transport requirements.
My plan is to use the translator to handle the different transport address differences. This way the transport can have specific translation implementation but the impl of the irouterdistributer is transport agnostic. 
Thoughts?