Add transaction blocks

This adds transaction queue functionality to the SQLConnectionHandler. There is the ability to have multiple queues per connection handler, as well as the ability to use returned values from a previous sql query in subsequent queries in the queue.
Queues are created using the `create_queue` method and then added to using the `add_to_queue` method. Calling `execute_queue` executes the queue, as expected.
To use previous result values, you need to know the order a previous query returns in. Then, you can use a similar format to the string format function to insert these values. The tests added give a good example of this functionality.
Why are you defining this function inside the other function? It can be a global function on this module (I know that you had problems with circular imports so define it here global). The problem with the approach that you are using is that you are re-defining that function for each "execute_queue" call, which has an overhead.

Same for the rollback_raise_error... in this canse, it will make sense to be a private function in the class