(maint) Update rsync_to to take an array of arbitrary flags

Previously rsync_to included a toggle to turn ignore-existing on or off,
which was sufficient for that use case. For the nightly repos,
--delete-after will also be added to the rsync_to call, so this commit
updates the method to simple take an arbitrary array of flags which are
conditionally appended to the default rsync flags. The default behavior
is still to have --ignore-existing included.
(maint) Remove unnecessary --ignore-existing flag

rsync_to already includes the --ignore-existing flag, so there is no
need to include it again in this call.
(CPR-64) Cleanup latest repo_configs on each ship

Previously, repo_configs for the -latest directories could include
platforms that no longer exist in the nightlies latest repo. This commit
updates the rsync call to be two separate calls, one for the -latest
directory to cleanup any old files, and one for just the $project, to
push out the new build.
(maint) Update rsync_to call in ship.rake

This commit updates the rsync_to in ship.rake to use the flags parameter
as an array to pass the excludes and ignore-existing flags. It also
collapses the two remote calls into the same retry_on_fail_block. If the
first call fails, we aren't going to make it to the second call anyway.
(maint) Update rsync_to calls in pe_ship.rake

This commit updates all of the rsync_to calls in pe_ship to remove the
redundant addition of --ignore-existing. It also updates the flags to
another call to be passed in an array instead of inline with the source
argument.
Merge pull request #331 from haus/maint/master/tweak_rsync_calls

(CPR-64) Cleanup latest repo_configs on each ship