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.~~
You can do a single call:

```python
11:54:23 (mcdonadt@rl1-1-222-14-dhcp):/Users/mcdonadt
> from string import maketrans

11:54:32 (mcdonadt@rl1-1-222-14-dhcp):/Users/mcdonadt
> s = 'asdasd'

11:54:36 (mcdonadt@rl1-1-222-14-dhcp):/Users/mcdonadt
> trans = maketrans('ad','xy')

11:54:39 (mcdonadt@rl1-1-222-14-dhcp):/Users/mcdonadt
> s.translate(trans, 's')
Out[12]: 'xyxy'
```