Implement default pop/2, pop/3, update/4, update!/3 for Dict.Behaviour
Improve application error formatting

* Format (nested) supervision tree init failures
* Format :gen_server exit reasons
* Fixes :invalid_options text
* Fixes text when when application start returns {:error, reason}
Merge pull request #2243 from meh/dict

Implement default pop/2, pop/3, update/4, update!/3 for Dict.Behaviour
Merge pull request #2242 from fishcakez/format_otp_exit

[WIP] Improve OTP behaviour error formatting
Convert doctest Test to a struct
Ensure defrecord and defstruct executes its args
Ensure --cover works on umbrella apps
Update travis badge [skip ci]

I know this is a bit lame, but the svg badge does look better =)
Merge pull request #2248 from arthurnn/patch-1

Update travis badge [skip ci]
Add a target to check minimum required Erlang version
Fix syntax error on .%, closes #2245
Merge pull request #2249 from alco/makefile-version-check

Add a target to check minimum required Erlang version
Only check for erlang release when copying .app file

This way we avoid the cost of checking it on every command.
When copying the .app file must be enough as we'd change
the Erlang requirement only on new versions.
Ensure proper @type is generated for dynamic struct
Convert internal records to structs
Convert ex_unit context to a map
Update CHANGELOG