Format exceptions consistently

* Add utility functions to Exception to format exceptions
* Format mfa exits, such as :gen_server.call/3
* Format EXIT reasons
* Fixes IEx to send formatted exception in one IO request
* Fixes IEx to format stacktraces consistently with Exception
* Fixes Mix application start error messages
Also support tuples in struct/2
Mention how generators in comprehensions can be used for filtering
Merge pull request #2235 from fishcakez/exception_format

Format exceptions consistently
Rename format_reason to format_exit, make some defs private
Rename format_message to format_banner
Use Application.format_reason when formatting application exits
Print all errors in case of missing files, closes #2239
Fix mix test
Only print char lists if in the ascii range
Do not throw/catch, instead use Process.info/2