Added control connection

Also change the LoadBalancingPolicy interface to use an iterator
design so that we can eventually optimize for large numbers of hosts.
Added copy on write mechanism

This will prevent us from having to fully copy the hosts list for
every query plan. I've also updated the RefCounted object to use
release/acquire memory ordering semantics which will likely perform
much better than the  sequential consistent memory ordering we were
using before. Here's the references I used:

http://www.boost.org/doc/libs/1_55_0/doc/html/atomic/usage_examples.html#boost_atomic.usage_examples.example_reference_counters
http://www.boost.org/doc/libs/1_55_0/doc/html/atomic/interface.html#atomic.interface.interface_memory_order

COW:
http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Copy-on-write
Added mechanism to run queries on the control conn

Fixed issue where the connection wouldn't have been
closed as a result of a timeout or error.
Merge pull request #56 from datastax/CPP-85

CPP-85 Add control connection