Report setup_all errors and mark tests as invalid

Closes #878
Remove unnecessary task handling deps.compile
Add --umbrella option to 'mix new'
Remove :app project setting in umbrella projects
Improve cons cell and other operators precedence, closes #862
Use a manifest to store generated files

This allows us to remove trailing .beam files
when a file is removed and more robust compilation
detection.

Closes #717, closes #954
Merge pull request #1048 from ericmj/mix-new-umbrella

Add --umbrella option to 'mix new'
Improve warnings related to default arguments

* "default arguments in some_fun/3 are never used"
* "the first default argument in some_fun/3 is never used"
* "the first 2 default arguments in some_fun/3 are never used"

Closes #929
Clean up and speed up exceptions
Add missing trivial clauses to record rewriter
A test case for empty receive block
Merge pull request #1055 from alco/record-rewriter-fix

Add missing trivial clauses to record rewriter
Downcase host and scheme in URIs
Merge pull request #1056 from meh/uri-downcase

Downcase host and scheme in URIs
Store in the AST if contents come from a quoted expression

This provides a more robust way of checking from where
the original expressions are coming from compared to the
lexical check_clauses field we had in elixir_scope.

A direct consequence of this commit is that, the following
code:

    defrecord Sample, [:hello] do
      import List
    end

Now raises a warning if the List import is not used,
where it didn't previously.
Provide a more robust alias and import expansion

Now that we support { quoted, true }, we can know
before hand if an alias or import comes from a macro
and act accordingly.
Deprecate var_context in favor of context
Ensure imports respect the quote context
Only add quoted: true to required ast nodes
Ensure nested modules are properly defined, closes #1057