add Dockerfile and supporting scripts

This allows running Metis (in a dev config for now) by doing:

`docker build -t vip/metis .`
`docker run -d -p 4000:4000 vip/metis`

Then you can hit it at http://localhost:4000/ (or
http://localdocker:4000/ with docker-osx).
update README.md with docker instructions
install build-essential in Dockerfile

Some node modules need make and compilers.
install node reps in Dockerfile so they can be cached

This speeds up subsequent docker builds if the package.json doesn't change.
add node_modules/.bin to docker/run-tests.sh so it can find karma

Also cd's to /metis to run the tests from there.
setup test suite to use phantomjs & install it in Docker

Instructions for running tests in Docker added to README. Lots of failures, but it seems that was already the case.
use quay.io base docker repo
Merge branch 'master' into docker
update README Docker section
Merge pull request #217 from votinginfoproject/docker

add Dockerfile and supporting infrastructure
[WM CS TH] eliminate buggy external unfolding state var

This pauses and resumes the incoming CSV stream instead. You have to
throttle the incoming CSV data or you will overwhelm Node.js's event
queue and crash the process with any real-world-sized CSV files that
also triggered a very-easy-to-trigger bug in the original unfolding boolean
var code. In the MD data we've been testing with, it was triggered by an
error in the source.txt file that didn't crash the whole process (b/c it
was a Mongo save error) but it did cause the feed processing code to
lose the plot as to whether it was unfolding or not. Keeping that state
in an external var was a bad design.
Merge pull request #219 from votinginfoproject/fix-unfold

[WM CS TH] eliminate buggy external unfolding state var
add some things to .dockerignore so they won't go into the build context
[TH] pass errorFn to unfold process so we can use it for its errors
[TH] remove errorCount, wasn't needed for this solution