Adds symlink to File

implementation of feature request #2114
Correct Enum.group_by/3 typespec
Inline some map calls
Fix compiler crash for some map literals
mix clean works accross environments
Remove records from IEx
Remove records from EEx
Docfix: write error
Merge pull request #2186 from jsvisa/exunit_case_docfix

Docfix: write error
Use project :description if one is available
Deprecate :env in project config and support MIX_EXS
Pass the relaxed option when downloading rebar

Closes #2152
Make iolist_to_binary/iolist_size a soft deprecation
Fix Elixir tests on Windows, closes #2190
Fix bug in for comprehensions
Revert "Allow overriding of undefined dependency SCM"

This reverts commit 5dd7a2ba3a08df89c5dd159bf66a4b22fe1a3f3f.

Conflicts:
	lib/mix/lib/mix/dep.ex
	lib/mix/lib/mix/dep/loader.ex
	lib/mix/test/fixtures/deps_status/custom/noscm_repo/mix.exs
	lib/mix/test/mix/tasks/deps_test.exs
Improve hex workflow

We do this by automatically starting hex, if one is available,
and by providing a local.hex task, similar to how we handle Rebar.

Note that this does not make Mix depend on Hex, we do this on a
best effort basis (similar to Rebar).
Improve message for rebar errors, closes #2189
Make more deprecations soft, update CHANGELOG
Fix cli tests to avoid unix warnings

When running on unix, we may emit warnings if the filesystem
is not configured to latin1, so we relax the tests assertion
to account for the warnings.