show exception middleware accepts multiple apps 

The show exception middleware allows developers to use custom error rendering apps. As error rendering applications become more complicated the chance for errors in the error rendering applications increases. By allowing multiple exception apps to be used instead of just one, a developer can provide a fallback application. This provides a better experience for the end user and decreases the chances that the `FAILSAFE_RESPONSE` will be used.

By default the public exception app will be put after any applications specified using `config.exceptions_app` in rails. This will provide a fallback in case an error is introduced by the exceptions_app.

Errors from within exception_apps will still be shown in the logs for debugging. This was inspired by the desire to have safer dynamic error pages #7772 but with or without that PR, I believe this PR still provides valuable behavior. 

ATP Railties and Action Pack. Btw, it's my birthday.