Support for other differ plugins + VCDiff

- Refactored default git diffing implementation to be one strategy,
  follows more of the plugin architecture that the sources follow
- Added VCDiff as another diffing plugin
- Adds support for decoding VC diffs int he client
- Refactoring some file structures to make a bit more sense
- Adding some unit tests for vcdiff
Fixes a variety of issues:

- Couldn't `get` sources out of local storage w/o version specified -
  this functionality is required
- Moves `fetch` on client library to a path on the `load` call. If the
  module is not cached when load is called, it will be fetched
automatically.
- Changed most inner APIs to communicate using Buffers instead of
  vanilla JS strings
- Fixes some issues with dynosrc support plugins not loading
  automatically