Try to remove directories using rm on *nix

The rm command is roughly twice as fast as the existing PHP removal
method on my system. For medium size projects, this saves ~150ms.

Note: Some unit tests were failing because the rely on the removeDirectory
helper function which was trying to use `rm` with a vfsStream:// url.
Protocol strings are excluded from running `rm` for this reason.
Render dry-run change list in real-time

Previously, the change list was rendered after the rsync process had
exited. This was fine for small change sets, but could result in a
lengthy hang with no output for larger changes.

Notable:

* Updated Symfony process component to 2.3: there was a bug in 2.2
  where process output would be lost if the callback passed to
  Process::start() took any measurable period of time.

  See: https://github.com/symfony/symfony/issues/8970
Fix progress bar counting incorrectly for Rsync

The progress bar was being triggered by callbacks from Process which contained multiple lines
of output from rsync, each line representing a file. This meant the progress bar was wrong, and
ended prematurely on fast connections.

I'm aware the filename displayed is one off currently.