Refactor rsync

Update rsync to working code
Add methods to use web sockets to communicate with client to perform a sync
I don't think you're doing what you want here.  This will only change `callback` in the scope of the `setCallback` function, not in the calling function.  Is the idea to figure out which one is a function and return that?  If so:

```javascript
if(typeof callback === 'function') {
  return callback;
}
if(typeof options === 'function') {
  return options;
}
return null; // or return function(){} if you want an empty callback
```

I think this code is probably a bad idea, though.