Emit warnings for underscored variables appearing twice in a pattern, closes #2480
Use a native splitting on String.split/1 instead of relying on regexes

The new implementation is 20x faster for small strings and about
100x times faster for large ones.
Improve mix docs
Ensure deps are not recompiled every second time, closes #2471
Clarify behaviour of split on Windows
Fix the usage of `embed_elixir` in escript.build
Merge pull request #2502 from alco/escript-embed-elixir

Fix the usage of `embed_elixir` in escript.build
Ensure we don't loop when printing inspect failures, closes #2503
Add comments to code:ensure_loaded/1 snippets
implement IO.(bin)read which accept `:all`

IO.(bin)read(dev, `:all`) reads all contents from device

Signed-off-by: José Valim <jose.valim@plataformatec.com.br>
Slightly improve IO docs
Update CHANGELOG
Use line from :keep when there is a :file meta in definitions
Emit :file attribute on all nodes instead of a select few
Make elixir_errors API more strict and consider :file in meta
Do not call handle_file_warning directly
Do not allow deps names on mix deps.get

Closes #2507.