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