Newfeature/query connection

@wesokes
@wesleykendall

* Added connection parameter to Query
* cleaned up documentation
* flake8 passing
@micahhausler My comment got knocked out from a change you made to the type checking, so I'll just paste it on here.
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.