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.
Minor space changes per @rf-
Fix hook name in test
Implement expression change test (per @rf-)
remove unnecessary temporary
Make watch expressions fully global

At the moment Pry::Hooks are not local to each instance, so the hook
was only being added once. This caused problems when you opened two
binding.pry's in one program, as the second one's watch expressions
appeared to be ignored.
Merge branch 'watch-expression'