Extract out gem related code to Pry::Rubygem

And fix some typos, and prettify some lines.

Signed-off-by: Kyrylo Silin <kyrylosilin@gmail.com>
Implement `Rubygem::install`

Use the code of `gem-install` command as a basis.

Signed-off-by: Kyrylo Silin <kyrylosilin@gmail.com>
Pry::Command::Cat::FileFormatter: make format() private
Reimplemented play, save-file with Pry::Command::CodeCollector

Pry::Command::CodeCollector is a mixin that extracts out shared
functionality from play, save-file and gist. Gist is yet to be
reimplemented.
Pry::CodeObject: binding_lookup --> empty_lookup
implement whereami -n (exclude line numbers)
Pry::Command::CodeCollector: replace module inclusion with delegation

And implement play and save-file using the new delegator. 'gist' still needs
to be re-implemented using CodeCollector.

************
TODO:
**************
Couldn't write a test for `play --lines 4..5` with implied target.eval("__FILE__") parameter,
need to come up with a decent test.
Intermediate merge step
Immediate output from Guard

(So you know it's not Guard lag, but test suite start)
ls columns improvement

Now is like /bin/ls, sorting downward, shrink-wrapping columns, and
minimizing row usage as best as I know how.
Downgrade each_with_object to manual accumulation
Fix my goofy indentation
More lenient assertion for whereami -n
Add support for ENV["LINES"] which works

ENV["ROWS"] doesn't for me.
WrappedModule now ignores def_delegator methods, fixes #801

If a class had most of its methods defined by def_delegators, the module extraction code would break.
This was due to Pry::WrappedModule looking for the class definition in fowardable.rb. We now
just simply reject all methods that have source_location.first =~ /forwardable\.rb/
Try to simplify edit.rb

* Remove ContextLocator, inlining the class in edit.rb instead.
* Pass explicit parameters into MethodPatcher and ExceptionPatcher, rather than passing 'self'
  and using def_delegators

Hopefully this won't upset codeclimate too much!
oops, forgot to remove context_locator require
Prettify command descriptions, switches and stuff

Wrap command descriptions to 80 characters. Convert some string options
to symbols (where possible). Align options in code. Remove dots in the
end of switch descriptions.

Signed-off-by: Kyrylo Silin <kyrylosilin@gmail.com>
Improve Pry::Command::Edit

* put all file and line location logic into FileAndLineLocator module
* pass explicit parameters to ExceptionPatcher and MethodPatcher (rather than just 'self')
Extract Table to its own file