Add Watch Expression Command

Usage: watch [EXPRESSION]
       watch
       watch --delete [INDEX]

Evaluate an expression after every command and display it when its value
changes.

    -d, --delete      Delete the watch expression with the given index. If
                      no index is given; clear all watch expressions.
    -l, --list        Show all current watch expressions and their values.
                      Calling watch with no expressions or options will
                      also show the watch expressions.

The watch command will use Pry's command `state` to keep track of watched
expressions.
Refactor Pry::Method.from_str , because of comment on method_or_class_lookup in lib/pry/code_object.rb .
Fix doc for Pry::Method.from_str to match refactoring.
implement Pry global and pry-local configuration.

maybe best explained with an example:
      [1] pry(main)> Pry.config.hi = "hi"
      => "hi"
      [2] pry(main)> _pry_.config.hi
      => "hi"
      [3] pry(main)> _pry_.config.x = 1
      => 1
      [4] pry(main)> Pry.config.x
      => nil
      [5] pry(main)>

'Pry.config' is an instance of Pry::Config::Default. it defines the initial
default configuration values an instance of 'Pry' is going to have. an instance
of 'Pry' uses an instance of Pry::Config who relies on Pry.config as a default
or fallback for keys it cannot find locally.

for example 'Pry.config.color = true' is seen by _all_ pry REPLs who are active
but _pry_.config.color = false is seen only by the REPL session being interacted
with. a number of "config shortcircuts" are still available, for example it is
possible to say `_pry_.input = StringIO.new` or `Pry.input = StringIO.new`. the
shortcuts are maintained for the Pry class and instances of the Pry class through
Pry::Config.shortcuts.

Pry::Config::Convenience adds a method called 'config_shortcuts' which can be used
to setup shortcut access to 'some_obj.config.blah' as 'some_obj.blah'

a lot of tests still fail, so work in progress.

this should help solve #1055.
add Pry::Config#refresh.
update Gemfile
look for a setter before anything else in Pry::Config#method_missing().
add Pry::Config#to_hash for 1.9 compatibility.
Merge branch 'master' into wip-config

Conflicts:
	lib/pry/pry_class.rb
empty Config::Default::STATE when default methods have been defined.
rename 'STATE' as 'state' to communicate its temporary nature.
define Pry.config as instance of Pry::Config.
remove Pry#hooks (use Pry.config.hooks or _pry_.config.hooks)
remove 'sticky_locals' as a configuration option.
Pry::Config#merge! turns Symbol keys to String's.
Merge branch 'master' into wip-config

Conflicts:
	lib/pry.rb
add Pry.config.file_completer, Pry.config.command_completer
remove instance_eval of Pry#custom_completions Proc.
move require of 'pry/indent' to pry.rb
define Ls/Gist/History defaults on instance of Pry::Config::Default.