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.~~
After playing with this, the changes between py2 and py3 are extreme. Keeping co-compatibility in the code is really, really tricky so I will hold off on this for now. Can make an issue for it.