Report setup_all errors and mark tests as invalid

Closes #878
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
Fix String.valid_codepoint? tests
Add String.valid?
Merge pull request #1058 from meh/string-valid

Add String.valid?
Make String.valid? work on characters
Support options from macros and @attributes in import, alias and require
Accept macro/@attribute options on quote
Update CHANGELOG
Merge pull request #1030 from ericmj/report-setup-all-error

Report setup_all errors and mark tests as invalid