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