JCLOUDS-642: InternalUrl fallback

This PR provides the necessary changes for [JCLOUDS-642](https://issues.apache.org/jira/browse/JCLOUDS-642). `InternalURL` should fallback to use `publicUrl` if the `internalUrl` is not present for the endpoint.
 
This is a WIP pending testing and could use feedback on the changes in the meantime. DO NOT MERGE! Thx!
How is this different from `InternalURLAbsent`?