Add maps support for Erlang 17+

Adds a proper check for Erlang 17 to #214.

Some tests were broken on Erlang 17+ as well so I fixed that. There is still one tests that fails, `lager_file_backend: filesystem_test_ (tracing with options should work)` but this was failing before and I couldn't figure out how to fix it.

One new compilation warning has been added all Erlang versions below 17.0:
```
src/lager_trunc_io.erl:278: Warning: the guard for this clause evaluates to 'false'
```

This is due to how the macro defines a check for maps that is skipped unless we are on Erlang 17+.