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.
The way it works is you can have placeholders for returned values from previous SQL commands in the queue, so the filepath IDs can be used directly in the queue. An example of that is in the tests: https://github.com/biocore/qiita/pull/512/files#diff-fd8fa1ae44937ec711b82368c103fe10R23 
This should take care of the issue of needing the filepath IDs for another set of work. If it's needed directly in Python they can be queried out again.