Ensure noname scope does not leak after assignment
Fix HashDict so that key comparison uses exact match

This change means that HashDict buckets are nolonger strictly ordered.
Previously keys which compared equal (==) but not exactly equal (===)
would be considered different for large sizes but equivalent for small
sizes. This ambiguity occured because hashes are only equal when terms
are exactly equal (===), so both now use exact (===) key comparisons.
Small HashDicts are still a single ordered list and large HashDicts
contain ordered buckets. Both of these may contain keys that compare
equal (==) but are not exactly equal (===), should these keys be present
in the same list or bucket the ordering of these keys (relative to each
other) is undefined.

See github issue #1171 for examples.

Note: If assumptions were made about the form of a HashDict they may
nolonger be valid. Particularly that HashDicts can nolonger be reliably
pattern matched on for equality.
Merge pull request #1177 from fishcakez/hashdict-unordered

Fix HashDict so that key comparison uses exact match
Ensure Enum.to_list and Dict.to_list return exactly the same result
Implementation of a basic test framework for IEx. Closes #919
Write tests for IEx helpers
Rewrite tests for helpers to use capture_iex and capture_io sparingly
Update the tests for l and r helpers
Don't process ANSI escapes in ExUnit output
Add more tests for shell coloring
Add docs for IEx test framework
Clean up test code for module helpers
Update the r helper
Update the docs for Code.load_file and Code.require_file
Add prompt test
Proof-read the doc for capture_io
Minor comment cleanup
Merge pull request #1137 from alco/919-iex-test-fmwk

Test framework for IEx
Make rebar skip deps since mix compiles them
Merge pull request #1184 from ericmj/mix-skip-deps

Make rebar skip deps since mix compiles them