Use fewer callbacks in AsynchrounousClient#connect and #close

Make the #connect and #close use a single chain of futures, instead of creating a promise which is controlled by the connect/close chain.
Extract connecting logic to a separate class

Also keyspace changing
Decrease repetition in #connect and #close
Move responsibilities between AsyncClient and Connector
Mark Connector as private
Add test coverage for KeyspaceChanger
Rename Connector ConnectionHelper
Move connector.rb to connection_helper.rb
Move defaults to AsyncClient

Better to have all defaults in one place
Add test coverage for ConnectionHelper

This duplicates tests in AsyncClient, so those should probably be removed eventually.
Merge branch 'rewrite_connect'
Break apart global and matrix env in the Travis config