fixing debugger messing up with aliases

* renamed wrap_next_call into wrap_next_clause and wrap_next_arrow,
  making the cases explicit.
* using __ENV__ on function calls so aliases, context, etc. are
  set up properly.
* TODO: should we do it also for case clauses?
Expressions sent to Debugger controller have values

* anon functions are the only corner case, thus those are replaced
  by their original counterparts using Runner.fn_from_second/2
* allows users to inspect values using pattern-based debugging.
debug-compiling private modules as public

* still trying to figure out how to raise exceptions on private
  modules without wrapping function calls.
Got { file, line } breakpoints, but no dbg shell

* take_over failing, so process hangs.
Debugger shell working as a separate shell

* Added IEx.Debugger.Helpers, providing a copy of the helpers on
  IEx.Helpers with some extra debug functions.
* Debugger shell has functionality to run code on arbitrary nodes,
  but some aspects need to be thought through:
  - How a user should specify a pid?
  - How output from a previous command should be presented?
* TODO: The Evaluator from the debug shell will always run commands
  in background, so new commands can be issued while others are
  running.
fully independent IEx.Debugger shell

* Every shell command starts a new process, and results come with
  the corresponding pid.
* Current issues/TODO:
  - Handle incomplete input.
  - Breakpoints not working, as __FILE__ from compiled modules
    being replaced by "iex".
  - `ds` helper currently recieves a quoted expression.
    This function should start a full shell inside the process if
    possible.
  - Missing step and pause helpers.
some fixes on iex-dbg

* Breakpoints working, passing filename around when compiling
  files through `dc/2`.
* Handling parse errors on `dc/2`.
* Colors on some messages.
Helpers on debug shell shouldn't spawn a new process

* Helpers should be executed on the same process as the shell, as
  they may rely on the process dictionary.
working and callable IEx.Debugger.Helper.ds/3

* shells into a paused process.
* a little workaround enables the helper to know the pid of the
  server, but it's quite an ugly hack.
receive-after blocks emulated like case blocks on debugger

* rewriting clauses to return themselves quoted.
* also, small fixes on env_file.
fixed a bunch of rebase errors on debugger

* :fn quoted functions had their structure changed.
* :elixir_scope.vars_from_binding/2 replaced with
  :elixir_scope.load_binding/3.
* erl_scope indexes affecting filename breakpoints.
IEx.Debugger.Helpers fixes & schminke

* Added debug pause `dp/1` helper.
* Added debug modules `dm/0` helper.
* `dl/0` accpet an option list, with pretty defaulting to false.