IEx has evaluates code on a separate process

* allows distinct commands to be received while eval/4 calls.
copied debugger code to iex
first shot at a compiling helper
dc helper working
`dc/2` helper has same interface and return as `c/2`
ported debugger tests and cleaned up files
Reader <-> Server <-> Evaluator on IEx
IEx.Debugger should start and stop with IEx.Server
fixed Debugger.wrap_quoted

* also added some Debugger event logging.
IEx.Debugger.Controller state is a record

* added `patterns` field for adding pattern-based breakpoints/logs.
pattern matching messages on IEx.Debugger
implemented `dpg/0` and `dps/1` helpers

* IEx helpers to set pattern-based breakpoints.
* dpg/dps -> debugger pattern get/set.
fixing defdebug and adding debugger helper tests
added `defdebugmodule` macro
modified module hierarchy debugger tests

* all under IEx.Debugger.*
fixed debugged function lookup

* using :elixir.scope_for_eval(delegate_locals_to: __MODULE__)
* also added scope to :elixir.eval_quoted :3
adding module tests

* those won't pass D:
added more debugger test coverage

* simple tests for special forms
* records
debugger refactoring

* PIDTable and Controller will return { :ok, pid } if the servers
  are already started.
* added async: false to debugger tests.
* record tuples failing on tests (debugger/record_test).
* nested module function lookup failing (debugger/module_test).
expand_all before :elixir.eval_quoted

* avoid running macros through eval.