Prefix all warnings with [warning]

We expose :elixir_errors.warn/2 and :elixir_errors.warn/3
The first is to be used when we have detailed caller information,
such as from a stacktrace. The second is useful when our only
context is a line number and filename.

Note also that the test for module redfinition is performed in
helpers_test.exs rather than in warning_test.exs Perhaps this is
something that should be moved.
Add `Version.valid_requirement?/1`
Fix test in previous commit
Lexer's valid_required? can now be private
Revert "Deprecate =~"

This reverts commit e42e3e55ca1561fe56b58d6f51c7b0faae6a7a1e.
Remove m/0 helper

The goal is to come up with a general
IEx module for runtime statistics.
No need to store environment in .compile.lock
Raise early on pipes into & special form
Merge branch 'issue-2022-warnings' of github.com:ShaneWilton/elixir into ShaneWilton-issue-2022-warnings

Conflicts:
	lib/elixir/test/elixir/kernel/warning_test.exs
	lib/iex/test/iex/helpers_test.exs