Implement bindings in Elixir
Clarify docs for Macro.expand_all/2
Clean up ExUnit.Case
Do not try to parse arguments for undefined functions
Ensure HashDict can be serialized into attribute, closes #1368
Update and remove out of date erl tests
Tighten up the grammar rules regarding parentheses omission

Prior to this commit, Elixir allowed too many ambiguous calls
by ommitting the parentheses:

    do_something 1, is_list [], 3
    [1, is_atom :foo, 3]

Both cases above would lead to a compilation error, as an attempt
to call is_list/2 and is_atom/2 would happen. Those examples will
now raise a syntax error, pointing to the ambiguous location.

We have disallowed such examples throughout the language with
the exception of one argument calls:

    assert is_list []

Examples as above are extremely frequent and were kept as is.