DialConfig for generalized transport + connection

In order to simplify and extend the transport and connection setup for application developers, offer `DialConfig` which takes a URL and a Config struct.  `Config` now takes transport specific fields to be used by the `Dial` functions.

Closes #86 

@torkale please take a look at let me know if this meets your needs.