Fix #283 - Refactor rsync to only use absolute paths

I think this pattern is a bit confusing for the reason Ali mentions--you are conditionally calling a callback only in the error case, which hides things.  It probably makes more sense to do it in the calling function based on the return value being true/false.