Fix the changed files paths when doing a resync

Doing a resync was causing absolute file paths (instead of file paths
relative to the root folder) to be sent.
Watcher: Ensure enumeration of changes happens only once
Let Watcher raise change events
Allow using GalleryClient to send changes in a Sandbox
Create a folder watcher for Apps
Obtain package.json from the file system
Create an abstract sync command
Create command to sync an App