Add Process.send/2 and Process.send_after/3
No longer compile unicode in parallel

Compiling in parallel only bought us 2s (out of 24s) since
compiling graphemes is what takes most of the time but it
considerably increases memory usage, by about 30%, since both
compilation targets are loaded into memory at once.
Clean up app.start tests
Raise on unknown dependencies for deps.get and deps.update
Ensure File.cp_r/3 respects trailing / in sources
Ensure doc_line resets algebra formatting line buffer, closes #2014
Remove pre-copying of dev dependencies

The current code was copying manifests but they got
recent access times which caused bugs. Also, a dependency
can have different results depending on each dependencies
are available and which are not, so simply copying the
compiled dep can lead to weird errors.
Document inlined functions are BIFs
Improve contracts for Dict

1. Functions like merge/2 and equal?/2 are only polymorphic in the
Dict module. Implementations of the Dict module only need to
care about equality and merging of the same types.

2. take/2, drop/2 and split/2 accept any Enum as argument.
Improve contracts for Set

Similar to how it has been done to Dict, functions in the
Set are polymorphic but Set implementations should not provide
polymorphic functions.

This reduces the duplication inside each set implementation
and provides both strict and polymorphic interfaces.
Make sure unintialized @attribute warnings points to the correct file
Improve coverage for Set and Dict with mixed types
Merge pull request #2018 from mururu/fix-warning-filename

Make sure unintialized @attribute warnings points to the correct file
Only accept stacktraces in Module.get_attribute/3
Update CHANGELOG
Fix bootstraping issues
Make explicit is_range / is_regex are allowed in guards
Limit the allowed sigils
Remove uneeded mix fixtures
Allow operators to be captured, example: &+/2