Adds symlink to File

implementation of feature request #2114
Fix stacktraces for :elixir.eval_forms/4

:erl_eval and :eval_bits can call :erlang.raise/3 with an incomplete
stacktrace, so extend the stacktrace when this occurs.

Mailing list thread:
https://groups.google.com/forum/#!topic/elixir-lang-core/cpSlgBjrRBQ
Fix pruning IEx stacktraces too aggressively
Revert "Convert StringIO to a struct."

This reverts commit a49c539a9d51aef95eb02c84d9d1a2e978b0d574.
iodata_size -> iodata_length
Fix some dialyzer warnings
Merge pull request #2221 from fishcakez/dialyzer_fixes

Fix some dialyzer warnings
Revert "Use esl package to get erlang 17.0 on travis"

This reverts commit 76d0adfe3c0f6914faf31dbcd4ee3e555b599e72.
Merge pull request #2216 from fishcakez/eval_stack

Fix stacktraces for :elixir.eval_forms/4
Merge pull request #2219 from fishcakez/iex_stacktrace

Fix pruning IEx stacktraces too aggressively
Add a test to ensure Code.eval_quoted keeps stacktrace
Ensure string switches are not treated as booleans, closes #2218
Ensure we start a new evaluator in case the old one dies
Convert Macro.Env to a struct
Convert #elixir_env to a struct too
Remove unecessary .hrl macros
mix deps.clean works accross environments, closes #2210
Update CHANGELOG
Ensure teardown failures are shown, closes #2222
Simplify exunit test name generation and update code samples