Use the correct domain when running the tunnel command.

If the Cloud Controller NG is configured to use different domains for system services (uaa, api, ...) and user apps, the "cf tunnel" and "cf console" commands aren't working since they always try to bind the Caldecott url to the target domain. Using an available domain in the app space would fix the problem. In case the target is a V2 system, the bugfix fetches the first available domain in the current space and use it for the Caldecot app. Further the commit contains some refactoring work on the push_helper method.