Allow --app flag to be passed on mix new

  Allows path to not follow app name conventions
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
allow lowercase http(s)_proxy env var
Parse unary/binary operators regardless of number of spaces

closes #2534.
Added @doc false to handle call
Merge pull request #2582 from tomkadwill/added-doc-false

Added @doc false to handle_call functions
Merge pull request #2581 from mururu/parse-space

Parse unary/binary operators regardless of number of spaces
Merge pull request #2580 from Joe-noh/lowercase-http-s-proxy

[MIX] allow lowercase http(s)_proxy env var
Merge pull request #2556 from patrickgombert/master

Allow --app flag to be passed on mix new
use os.timestamp for setting random seed in doc examples
small evaluator refactoring
Update mix's mix.exs to fix escript.build