Can now download VCFs, major code cleaning as well

Roughly, this PR uses SQLAlchemy to generate SQL, instead of string concatenating. This fixes SQL injection issues, as well as cleans up gross code. There is some scaffolding around this that gets used in e.g. views.py. 

I also introduce the common top-level module to store functions and functionality common to workers and cycledash modules.

![](https://camo.githubusercontent.com/cdfec5ce5900c44a3cf26498dc3ef723f276612d/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f662e636c2e6c792f6974656d732f30673262314e3432323330553173314c315433382f53637265656e25323053686f74253230323031342d31322d31312532306174253230332e33382e3239253230504d2e706e67)
fixes #350 
fixes #62
fixes #246

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/hammerlab/cycledash/384)
<!-- Reviewable:end -->