Initial commit

Porting all the code from Qiita and extending the tests.
I think this comment is actually inaccurate, since `self._open_connection` now uses the `admin` attribute (set upon instantiation) to determine the type of connection that will be made