(PDB-100) Convert terminus to internally use a URL connecting to PDB

There purely a refactor of terminus' HTTP code to use URLs rather than
the existing server + port combination internally. The user still
specifies server+port and we convert this internally to URLs. This is
step one in getting connection failover for the terminus.

This is my first significant change to the terminus code and would appreciate some feedback on the new API, style etc.
I'm on the fence about this config. First my timeout choice was arbitrary (30 seconds) and as the code sits right now, it always applies the timeout. If the user has a default config right now (one server) it will timeout requests to puppetdb in 30 seconds. I'm not sure this is a good idea. Should I only support timing out when the user has specified more than one PuppetDB URL?