mix archive version # & -o flag for #1284
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
Erlang says that the first directory of an archive should be the same as the archive name
Merge pull request #1316 from meh/mix-system-version

Mix system version
Remove matchspec duplication
Update CHANGELOG