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'
Fix watch tests
Remove level of indirection
Fix bug in edit regarding file names with path but no suffix

There was a bug in Command::Edit#probably_a_file? due to missing
parentheses in a method call followed by an operator.
Merge pull request #1104 from jonas054/fix_probably_a_file

Fix bug in edit regarding file names with path but no suffix
use 'platform' on rubinius (over RbConfig) in Gemfile.
Merge branch 'master' into wip-config

Conflicts:
	Gemfile
add Behavior#inherited_by and Behavior#wipe!.

many TODO's to clean up.