Rewrite IO.ANSI tests to match new behavior
Bring back original tests for IO.ANSI

To avoid conflict and preserve compatibilty, the new tests use the
functions `IO.ANSI.format/2` and `IO.ANSI.format_fragment/2`.
Change IO.ANSI tests to assume chardata is returned
Implement IO.ANSI format/2 and format_fragment/2
Put IO.ANSI.reset inside a list before concat'ing
Add docs to format/2 and format_fragment/2
Add test case for nested improper lists
Reimplement IO.ANSI do_format

This avoids copying partial lists, and handles nested improper lists.
Fix IO.ANSI doctests
Do not consider subpatterns on Regex.split/3
Always touch all marked dependencies from deps fetcher
Add OTP 17.1 to run on Travis CI
Ensure no lock for rebar dependencies, closes #2561
Merge pull request #2606 from edgurgel/patch-1

Add OTP 17.1 to run on Travis CI
Merge pull request #2562 from thmzlt/ansi

Implement IO.ANSI format/2 and format_fragment/2
Deprecate IO.ANSI.escape/2 and IO.ANSI.escape_fragment/2
Provide :on option for Regex.split/3
Add Logger
No more binding with a list
Update CHANGELOG