Format lock opts with the lock

This is a simpler solution to the problem outlines on issue #1879
Improve stacktraces and error messages during expansion
Deprecate is_alive in favor of Node.alive?
Compile with relative paths and include apps in stacktraces

Closes #1964, closes #1861
Use relative paths when compiling elixir itself
Annotated types should not be in guard vars
Use :application.get_application/1 in stracktraces
Create a signature for callbacks
Fixing doc typos in ExUnit
Fixing doc typos in Kernel.Typespec
Merge pull request #1980 from jwarwick/doc_typos

Fixing doc typos in ExUnit and Kernel.Typespec
Give erl_eval bindings as an orddict

Fixes error where in IEx when referencing the ~10th defined variable.
Add a test for multiple vars in IEx for the previous commit
Small improvements to records and others
Ensure Elixir own .app files include all lib modules
Unify precedence of ++, --, **, .., <> ops
Add Keyword.delete/3 for deleting explicit values.
Add Stream.transform/3

Note: the function name may be modified before the next release.
Update CHANGELOG
Add Enum.flat_map_reduce/3