Fixed bug in URI parsing when multiple subdomains are registered

In case multiple subdomains are registered, CloudControllerClientImpl.extractUriInfo() was picking the first one in the order returned by the provided map's iterator (Map<String, UUID> domains). Now selects the most specific one (the domain with the longuest size).
Added associated unit test. Since it was impossible to properly inject mocks, I had to create a new protected constructor. Would be useful to move the initialize() call out of the constructor in future to each such tests