Fix ^D press in nested REPLs

The interesting moment is that `cd -` is still a bit dorky.

  [1] pry(main)> _pry_.repl :a
  [2] pry(:a):1> _pry_.repl :b
  [3] pry(:b):2> cd -
  [4] pry(:b):2> cd -
  [5] pry(:b):2>

The problem is that `_pry_.repl` pushes a new binding onto
`binding_stack`, however, it knows nothing about `old_stack`.

Well, there is a workaround for this.

  [1] pry(main)> _pry_.repl :a
  [2] pry(:a):1> ^D
  [3] pry(main)> cd -
  [4] pry(:a):1> cd -
  [5] pry(main)>

Fix "undefined method `old_stack=' for nil:NilClass" error in this
commit, when you press ^D in a nested REPL. Add a test case for this.
Rewrite some comments and old Control-D units tests (so they use newer
test API).

Signed-off-by: Kyrylo Silin <kyrylosilin@gmail.com>
Allow Pry::WrappedModule.from_str() to look up modules from locals/ivars

No longer restricted to just constants.
update documentation for from_obj and from_class in Pry::Method
fix tests on ruby 2.0
Make bacon respect $VERBOSE env var (default=off)
Avoid NoMethodError's with jruby/pull/436 present
CommandSet#find_method_by_match_or_listing is no longer private
Pry::Method: added wrapped() method to return underlying Method object

Also using safe_send() to invoke owner.instance_method as owner.instance_method is
not guaranteed to exist if a user redefines it (this caused a failing test).
started code_object stuff
added ability to extract an implicit object from binding when no string is given
fixed up code_object.rb to retrieve commands by listing name
migrating show-source over to new Pry::CodeObject API
Pry::WrappedModule::Candidate, added source_file and source_line

For consistency with Pry::WrappedModule and Pry::Method, etc
allow Pry::Command.source to properly extract source for commands defined in REPL
free show-source from the horror of module_introspection_helpers.rb and method_options.rb

show-doc and edit and a variety of other commands can also be updated to use the new Pry::CodeObject API
make show-source code more readable
added Pry::Command.doc method

This brings Pry::Command API inline with Pry::Method and Pry::WrappedModule, so that we can
treat them the same as 'Code objects' in certain situations
move unnecessary DocumentationHelpers include out of Pry::WrappedModule
Pry::WrappedModule::Candidate#doc no longer syntax highlights documentation

Also now including DocumentationHelpers so we can access the strip_* methods, useful for removing leading spaces and hashes from
raw comments.
show-doc: Removed the horror of ModuleInstrospectionHelpers and method_options

show-doc should be a lot easier to grok now there are no hidden modules adding methods and doing spooky things
behind the scenes.