Allow a module to force its debug_info to be compiled
Clean up protocol implementation setting the ground for consolidation
Fix bug where nested defmodule was shadowing alias hygiene
Deprecate @only and @except
Improve mix compile.elixir code comments
Improve iex typespec helpers output on bad data
Implement protocol consolidation
Falling back to any in protocols needs to be explicit
Ensure custom types can be prioritized
Read fallback_to_any from @only and @except for backwards compat
Normalize all stacktrace under the same name and improve IEx errors

Kudos to @pragdave for suggesting some those improvements and
providing an initial implementation in pull request #1752.
Provide a wrapper in CLI for easy stacktrace pruning

As suggested by @pragdave
Remove unused warning
Merge pull request #1753 from mururu/rm-warning

Remove unused warning
Use attributes so we don't force protocols to be loaded
Fix typos (tks @ericmj)
Fix indentation on doc example
Merge pull request #1754 from pminten/exunit-case-doc-fix

Fix indentation on doc example
Remove @prioritize from Protocols

The consolidation algorithm is now fast enough that prioritize
does not actually make any difference in performance. We achived
that by compiling the dispatch in two set of functions: one that
checks the types (list, tuple, function, etc) and another that
checks the leading atom name for records (HashDict, HashSet, etc).

By breaking in two different sets, the Erlang compiler can better
optimize pattern matching on those items to the point prioritizing
does not yield any benefit.

Thanks to @ericmj for the initial suggestion.
Merge pull request #1750 from elixir-lang/jv-protocols

Implement protocol consolidation