Replace directory_watcher with listen.

Directory_watcher consumed ~25% CPU on big Jekyll projects (depending on
the number of watched files), since it polled for changes every second.

Listen is easier on CPU, as it uses directory change notifications
provided by OS (currently OS X and Linux), falling back to polling when
they are not available.
Remove require 'pathname': already included.
Handle destinations outside of source.
Update listen to ~> 2.0.
Merge pull request #1589 from dchest/better-watch

Replace directory_watcher with listen.
Update history to reflect merge of #1589