Install executable-only packages outside of the sandbox

The dependencies of our executable-only packages and our application seem to
conflict. We're unable to determine the root cause, but installing the
executable-only packages outside of the sandbox solves the issue.

This also means these packages can be reused across projects. If we assume there
aren't as strict version requirements, this should be a Good Thing.
Update cabal file for 1.4 dependencies

- Re-freeze dependencies
- Lift these constraints during executable install on Travis

Temporarily move cabal.config so the executable-only install is free to use the
latest versions possible. By also installing within a sandbox on Travis, we
solve the dependency issue the same way we do in local development.
Upgrade code base for Yesod 1.4

- Replace Yesod.Text.Markdown shim
- Remove deprecated sqlOnlySettings
- Use SqlBackend, not SqlPersistT
- Add YesodAuthPersist instance
- Remove deprecated giveUrlRenderer
New deployment procedures

- Deploying to staging is a normal push
- Deploying to production releases the current slug from staging
Add missing package in cabal.config
Use new buildpack

- Update entry in .buildpacks
- Update Procfile to expect binary in alternate location
Restart app as part of production deploy
Refactor application for new coding guidelines

- Line length, import sorting, etc
- Separate Model modules for each non-trivial data type
- Anything dealing with Request/Response should appear in a Handler or Helper
- Helpers should be about cross-cutting concerns, not model or handler-specific
- One Handler module per resource, not per URL
Use our fork of haskell-on-heroku
Email notifications

- On new comment, add record to Subscriptions model
- On new comment, find other users subscribed and notify them via email
- Provide token-based unsubscription

Adds extractable RecipientOverride and SendGrid modules
Fix SendGrid port definition

- The PortNum constructor is not required, and in fact results in an invalid
  conversion from the numeric literal
mobile styles for comments