Web study search interface

This pull request is rather large, so sorry about that. It adds a ton of functionality to the study selection page, including the ability to search and select samples by metadata, select multiple data-types per study and multiple processed data files per data-type, and database updates for selection/deselection as well as the ability to continue selecting samples after leaving and then returning to the analysis pipeline. It also adds a dependency on the pyparsing module.

Currently I need people to play around with the page functionality and give input on what is broken/wonky, what needs to be changed interface-wise, and what needs to be added. 

Known issues:
 - ~~Use [chosen](http://harvesthq.github.io/chosen/) for the multi-select boxes for each data-type~~
 - Have some tooltip or other way of seeing the pertinent values for processed data
 - ~~Have some way of knowing what metadata categories are available to search over~~
 - ~~Add tornado tests once that package is figured out~~
 - ~~Handle malformed queries better than an error message coming up.~~
I think you misunderstood, what I'm recommending is to only have a single call to `executemany` in this method instead of having 3. It isn't intended for a speed up, but for simplifying the code. The motivation is two fold: first, to only do the minimum necessary within a block as having additional logic confounds the intent of the block and second, to reduce code replication.  

One other note, it is possible to for both `proc_data` and `samples` to evaluate `False`, so there should be an `else` block