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
Fallback to no tab expansion if not supported
Merge pull request #2570 from chyndman/iex-expand-fun-fallback

Fallback to no tab expansion if not supported
Docs: ensure docs for Dict use full variable names

The following variable switches have been made:

 * `d` has been changed to `dict`
 * `a` has been changed to `dict1`
 * `b` has been changed to `dict2`
 * `d1` has been changed to `dict1`
 * `d2` has been changed to `dict2`

 This fixes #2574
Merge pull request #2575 from Gazler/docs/dict

Docs: ensure docs for Dict use full variable names
Docs: change Dict.merge description to read more naturally

Previously there was an additional "dict" - this is as a result of it
previously saying "dict `a`"
Merge pull request #2576 from Gazler/docs/dict

Docs: change Dict.merge description to read more naturally
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