Take into account Erlang may pass line numbers as none
Reduce vars footprint in case/receive clauses
Fix unused vars warnings
Better error reporting for invalid type specifications

Closes #818
IO.ANSI.escape shouldn't emit a reset sequence if no ANSI sequence was emitted

Closes #807
Expand current module macros with Macro.expand, closes #815
Update CHANGELOG
Don't emit ANSI sequence escape codes in shell in OTP prior to R16
Better error reporting for invalid ANSI escape sequences
Add missing specification for IO.ANSI.terminal?/1
Minor IO.ANSI.terminal?/0 documentation improvement