Newfeature/query connection

@wesokes
@wesleykendall

* Added connection parameter to Query
* cleaned up documentation
* flake8 passing
Rather than running an actual query on these, you could add a method to Query called get_cursor that just returns self.connection.cursor. Be sure to update each self.connection.cursor reference to use self.get_cursor() Then your tests could simply verify that the cursor references contain the correct db reference. Each .cursor() call is going to be a different object, but the .db property should reference the same db object for that connection.