mix archive version # & -o flag for #1284
quote calls them context, so let's keep it consistent
Remove variables defined in `match?` from scope

At @josevalim's suggestion, we loop over the ast given to the macro and
disable scope of any new variables defined, which effectively stops
variables from leaking into the outside scope.

Fixes #1304
Merge pull request #1311 from vanstee/contain-match-scope

Don't leak matched variables when calling `match?`
Ensure variables from when in match? do not leak too
Don't end it with ? if it doesnt return a boolean
Merge pull request #1320 from jeremyjh/1284-version-archives

Add version number to mix archive files by default per #1284
Validate Elixir version in projects, closes #1310
Fix Mix.Version being inconsistent with pre and build metadata
Fix typo in mix project tests
Remove doctests from Mix.Version