WebsiteOne style Custom Errors handling

[Pivotal Tracker](https://www.pivotaltracker.com/story/show/68564702)

* Copy&Pasted `custom_errors.rb` and related tests from WebsiteOne project
* Modified local tests to work with new custom error handling
* Used a static 404/500 page (without relying on the database, in case the database has an error)

# Motivation

Right now what you have in the project is a custom error handler that is intercepting errors in the application and sending out a user friendly error page, even in the `development` and `test` environment. This feature will bring the following benefits:

* Errors are properly thrown in `development` and `test` environment and so giving developers more information to work with, significantly reducing the headache of debugging applications
* Added a powerful debugging tool with gems `better_errors` and `binding_of_caller`, which when used together, provides a better UI displaying the error and an in-browser live ruby debugger at the point of error
* Exceptions which are not thrown up in `test` environment might not be caught by the tests, we had cases in WebsiteOne where tests were encountering an internal server error but the exception was masked by the custom error page handling
* Custom user-friendly error pages are still sent out in `production`

# Before (in development)

![without new pr](https://cloud.githubusercontent.com/assets/2663402/2630173/37f56616-be44-11e3-9084-6c93d5aad7ac.png)

# After (in development)

![with new pr](https://cloud.githubusercontent.com/assets/2663402/2630171/325fae0a-be44-11e3-82e6-646d0be84ec0.png)