Connection supports ::reconnect and ::disconnect

Closes #39 
I've only extracted this code into methods.