Make client properties parameterizable
Prototype test to verify client properties - waiting on confirmation that this is the way forward
Address naming and documentation remarks
Implemented test for custom client properties
Refactor test to share connection handshake

In order to inspect the client properties and negotiated tunings,
capture them in the mock server object so assertions of server state can
be made after the client.Open completes.
Merged Sean's nice factoring
Config now has a properties field that is more generic
Replace ConnectionTimeout with Dial()

A zero ConnectionTimeout prevents DialConfig() from connecting.  Instead
of parameterizing all aspects of establishing a connection, starting
with ConnectionTimeout, inject a `Dial(network, addr string) (net.Conn,
error)` in Config so that the caller can provide a net.Conn.

Touches up some of the documentation of Config.
Merge pull request #99 from streadway/parameterize_dial_without_timeout

Replace ConnectionTimeout with Dial()
Merge remote-tracking branch 'upstream/master' into parameterize_client_properties
Addressed QA remarks
Merge pull request #98 from relops/parameterize_client_properties

Parameterizable client properties
Git keeps better track than I do

Thanks to everyone that's helping out.