oojs-update.sh: Replace target dir instead of adding file copies
* A command like "cp dist/* $TARGET_DIR" does not remove files
that were deleted in the release dist. Using rsync instead.
Though addition can happen, deletion should never happen as we
refer to these files in Resources.php. But we also shouldn't
leave behind old files mixed with new files, so delete them.
Our structure unit tests for resources take care of catching
references to files that don't (or no longer) exist.
* Use bash -n instead of != "".
* Refactor slightly to make it re-usable in other projects without
too much modification (only REPO_DIR and TARGET_DIR need updating,
the rest is generic now).
* The "git commit <dir>" doesn't properly take care of staging
deletion of files removed by the update script, nor does it
reliably (?) stage new files.
Instead using a combination of "git add -u <dir>" (The -u
stages deletion and modifcation of tracked files), and
"git add <dir>" (stages modification and creation of files in
that directory).
Change-Id: Ieb20978c887c5a141f31cab704b8d239f1572af0