More bugfixes:
* fix bug in syndicate.util.watchdog to treat cmdline as a callable.
* clean up logging in observer syncsteps
* make principal_id a unique field in SyndicatePrinciple
* close race condition in creating users in syndicate.util.provisioning, so it honors at-most-once semantics
* a bit of refactoring in syndicatelib (renaming methods for clarity)
* make sure syndicated.py works correctly with per-slice encryption scheme (fixing issue #89)