2755: add support to arv-put for signed manifests.

When arv-put finishes a stream, the manifest it stores in Keep now has
been stripped of signatures and other variable hints.

test_cmdline.py tests arv-put's handling of the manifest to make sure
that, when permissions are enabled, the manifest in Keep lacks
signatures, and the same manifest returned from the API server includes
signatures.

Refs #2755.
2755: code review.

* CollectionWriter does not cache manifest_text, and recomputes it each
  time it is asked.

* Manifest uuid is computed from a manifest that has been stripped of
  permission hints, but not any other kind of locator hint.
2755: code review.

* arv-put returns an unsigned manifest UUID.

* The ArvPutSignedManifest test first confirms that the collection is
  not present in the API server.  Also asserts that the arv-put command
  completed successfully.

* Additional tests for KeepPermissionTestCase for each potential
  combination of wrong authorization and signature.
2755: comment doc fix.
2755: Let the API server decide the correct collection UUID format.
2755: add unit test for Collection.normalize_uuid.
Merge remote-tracking branch 'refs/remotes/origin/2755-python-sdk-permissions-TC' into 2755-python-sdk-permissions

Refs #2755.
Merge branch 'master' into 2755-python-sdk-permissions

Conflicts:
	sdk/python/bin/arv-put
Merge branch '2755-python-sdk-permissions'

Closes #2755.