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.
Add exception formatting and colorization to iex
Don't use Regex module inside Exception, as it may not be available
Respond to review comments
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 Error on bad_return from Application.Behaviour.Start
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
Move from  // to \\
Deprecate usage of @behavior in favor of @behaviour