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.
lib/pry/commands/ls/*.rb: tweak visibility of the methods
lib/pry/commands/ls.rb: split up #raise_errors_if_arguments_are_weird
Wrap entities into the LsEntity facility

And thus simplify "#process".
lib/pry/commands/ls.rb: get rid of the "interrogatee" accessor
lib/pry/commands/ls.rb: use hashrockets for hashes

Ugh, that's because I've written more JS than Ruby recently. By the way,
do we still support 1.8?
lib/pry/commands/ls/ls_entity.rb: use `Proc#call` instead of `Proc#[]`

The boys disliked my procs :(
I changed my procs.
My procs look beautiful now.
The boys like it :)
lib/pry/indent.rb: fix typos in #track_module_nesting
Add *.bundle to .gitignore
Merge pull request #1029 from yui-knk/addGitIgnore

Add *.bundle to .gitignore
  adds HistoryArray#to_h and spec
Remove unecessary eval's from cd_spec
Add `.cd -` to return to prior working directory

[Finishes #1028]
Merge pull request #1033 from jasonLaster/pry_tester_eval

Remove unecessary eval's from cd_spec
Merge pull request #1032 from DanielleSucher/add-cd-dash

Add `.cd -` to return to prior working directory
Only take a shallow clone
Merge branch 'to_h'
solved issue 998
issue 998
Update ShellCommand so that  autocompletes to