Disallow &-partial calls on the right side of |>
Implement assert_compile_fail

The format_rescue function has been found useful in multiple instances,
so it made sense to generalize it into its own assertion.
Reimplement =~ to use Regex.match? or String.contains?
Use =~ with strings where it makes sense
Mostly done. Still need to fix warning printout.
Experiment with how to pass back status. process dictionary doesn't work.
a little closer, status is passed to main process
Pass exit status to callback so we can decide there whether to stop or not.
Fix tests that expect the parallel compiler callback to only pass one parameter.
Update parallel compiler callback documentation
Unwind a lot of the wrong direction, output warnings based on warnings-as-errors setting
Implement José's suggestions.

1. Detect all places in elixir_errors:handle_file_warning/3 where we
output something with io
2. Change those places to go through an internal function that will
call elixir_compiler:get_opt and figure out if we should print to
stdout or stderr and act accordingly
3. In the same function above, whenever we print a warning as an error,
we should store somewhere that a warning as an error happened. I
recommend storing that in the elixir_code_server gen server
4. Provide a Code.compilation_status that would return it
Don't pass warnings-as-errors to module since it isn't needed
print compiled even if compilation_status is not :ok it may have been from another file. Halt on an :error
Implement Mix.Version, closes #1115
Merge pull request #1187 from alco/pipeline-op

Pipeline op fix + additional assertion
Merge pull request #1199 from alco/1148-match-tilde-op

Reimplement =~ to use Regex.match? or String.contains?
Fix a bug on Path.split/1
Deprecate Regex.index/2
Update CHANGELOG