Support pass an option during node sync to NOT sync the repositories (content).

The primary change is to support passing the *skip_content_update* option when calling the node sync API.

Incidental changes:
- Pass the client SSL cert (PEM text) instead of using the link module.  This was the only thing we were using the link module for so I removed it.  Nice idea but dont think we'll need it (and we can go back in git and get it if we need to).
- Decoupled the UnitInventory and Manifest.  This was mainly done to accommodate optimizations that I decided not to include in the end.  But, left it in because the coupling was unnecessary.
- Added a MANIFEST_VERSION to the manifest json document so that as the manifest document evolves, we can ignore outdated cached manifest documents and raise the correct error.
- While adding a new error, updated the errors.py to use self.__class__.

Decided not to add support for passing the *skip_content_update* option in the CLI.  Too many other priorities.