Add disconnect! to close sessions and shutdown cluster preventing accidental program hangs

If you call connect and get a session object, calling disconnect on it later on will result in your program hanging as the session and cluster have relations to each other that can't get garbage collected.  For those who aren't managing their cluster objects themselves, disconnect! will clean up their cluster and session for them.