Warn about break/continue in subshells and outside loops
Refactoring, 25% speedup.

* Checks now use Writer monad instead of State

* Parser no longer emits notes unrelated to parsing.

* All checks are now passed a parameter value, containing shell type,
  map from notes to parents and such. This eliminates recalculation
  and removes the need for a special group of parent examining checks.
Don't consider last stage of pipeline a subshell for Ksh/Zsh

Also fixes the problem where pipelines were considered a single subshell.
Replaced parser error for 'function' with shell-aware check.
Added -s flag to override dialect, e.g. -s ksh
Fixed compilation error on GHC7
Added -s to the man page
Fixed parser not accepting `` in arithmetic contex
Added --version flag
Fixed cabal file
Stable version 0.3.1

This release is dedicated to the Flycheck team,
even though ShellCheck is written entirely in Vim.
Some checks for accidental rm -r
Parse forward ticks (acute accents) just like backticks and warn.
README: Updated URL, reformatted long lines
Improve warnings for missing quotes.
Added double prime to list of unicode quotes.
Added better message for SC1007, for 'var= value'
Suggest useless use of echo for $(echo $var)
Some hlint fixes.

Ironically, this is the first time the linter has been linted.
Improved $(echo ..) warnings