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
Update gen_server.ex
Remove duplicate test
Merge pull request #2599 from rclements/patch-1

Update gen_server.ex
Merge pull request #2600 from niku/remove-duplicate-test

Remove duplicate test
Fix indent

Signed-off-by: José Valim <jose.valim@plataformatec.com.br>
Deprecate octal and upcase char syntaxes
Update CHANGELOG
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