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.~~
There is a ```Counter``` class in the ```collections``` module that I first saw in some of @wasade's code.  I'm not sure what the major advantage is over a ```defaultdict(int)```, but it seems specially designed for this purpose, so maybe it's worth using.  Example:
```python
>>> from collections import defaultdict, Counter
>>> meta = ['first', 'second', 'third']
>>> d = {meta: Counter() for meta in meta}
>>> d
{'second': Counter(), 'third': Counter(), 'first': Counter()}
>>> d['first']['sup'] += 1
>>> d
{'second': Counter(), 'third': Counter(), 'first': Counter({'sup': 1})}
```