add '$ -e', and 'show-source -e'.

evaluates the argument to the pry command as an expression and returns
the source for the return value of the expression. i need to add tests
as well as update changelog.

closes #1184
update CHANGELOG.md for #1185
Fix typo in show_source.rb

1. delete EXPRESSION from usage in BANNER, because user can use EXPRESSION only when -e option is given.

2. add `show-source Pry.foo -e` example to BANNER.

3. rename parameter of options method from `opts` to `opt`, because in other commands `opt` is used.
Fix typo.

Rename parameter of options method from opti to opt, because in other commands opt is used.
Add test to show_source command with -e option.
rewrite test on top of `ReplTester`.
small doc tweak in show-source
docs, again
fix test for `show-source -e`
update changelog.md for `pry -i`.
improve `#inspect` of Pry::Config::Behavior instances (`_pry_.config`)

closes #1150
fix typo in argument name to _clip_inspect()
rename `keys=` as `local_keys=` in #inspect. ref #1150
add Behavior#pretty_print, return '#' prefix in string from Behavior#inspect
fix random test failure

when the tests are run in a certain order spec/completion_spec.rb can fail with:
NameError: uninitialized constant Pry::InputCompleter::Readline
  /Users/giorgio/code/pry/lib/pry/input_completer.rb:6:in `start': Pry::InputCompleter - should not crash if there's a Module that has a symbolic name.
  /Users/giorgio/code/pry/lib/pry/config/default.rb:41:in `block in <class:Default>'
  /Users/giorgio/code/pry/lib/pry/config/default.rb:58:in `instance_eval'

we require readline so we know spec/completion_spec.rb has its dependencies met
before being run.
Fix requiring of rubygems

The Rubygem documentation here http://guides.rubygems.org/name-your-gem/
suggests the naming of rubygems. If the name contains dashes (-) the
require statements should include forward slashes that replace the dashes.

For example, the 'net-ssh' rubygem should have the require statement of
```ruby
require 'net/ssh'
```

This simple fix tries to address this problem and falls back to the
original require statement if there is a `LoadError`. This will handle
cases where some gem author didn't follow the naming convention
suggested in the documentation.
Fix the logic by inversing the require statements.
update oudated documentation for `gem-install`.
label and re-use regexp's in Pry::InputCompleter.
rewrite Pry::InputCompleter as a class who wraps '_pry_'.

this commit changes InputCompleter from a module implemented on top
of singleton/class methods to a class who wraps '_pry_' and reads
from _pry_.input, who is assumed to be Readline.

pry-bond will also need to be updated to have a similar style API.