Add tons of unit tests to Flycheck

Mainly add tests that perform a complete syntax check on a given input file, and test the errors in the buffer afterwards.

Will fix #44.

# State

Started.

Remaining checkers:

- [x] bash
- [x] coffee
- [x] css
- [x] emacs-lisp
- [x] haml
- [x] html
- [x] json
- [x] javascript-jshint
- [x] lua (thanks @ptrv)
- [x] php
- [x] python-flake8
- [x] python-pyflakes
- [x] python-pylint
- [x] ruby
- [x] sass
- [x] sh
- [x] tex-chktex
- [x] tex-lacheck
- [x] xml-xmlstarlet
- [x] zsh

# Additional tests

- [x] Test error regions for lines and columns
- [x] Test checker selection, including selecting an unusable checker.

# Additional changes

- [x] Add status image for `master` branch to `README.md`.
- [x] Require unit tests for new checkers in `CONTRIBUTING.md`.
- [x] Add `README.md` in `tests/` explaining test execution, both locally and in Vagrant.