2755: Verify permission signatures on create.

Phase 1 of #2755: when creating a new collection, verify any permission
signatures found in the manifest.  Unsigned locators in the manifest are
implicitly permitted (to be disabled in Phase 4)

* Collections.create checks permission signatures in a manifest.
* Collections.show signs locators in a manifest.
* Unit test test_create_collection_with_signed_manifest exercises the
  'create' and 'show' methods on a signed manifest.
* application.default.yml, application.yml.example: added configuration
  variable Rails.configuration.permission_key.
2755: Verify permission signatures on create.

Phase 1 of #2755: when creating a new collection, verify any permission
signatures found in the manifest.  Unsigned locators in the manifest are
implicitly permitted (to be disabled in Phase 4)

* New "Locator" class to parse, examine and manipulate Keep locators.
* Collections.create checks permission signatures in a manifest.
* Collections.show signs locators in a manifest.
* collections_controller_test.rb: new unit tests to exercise signed
  manifests and related features:
    - "create collection with signed manifest"
    - "create collection with signed manifest and explicit TTL"
    - "create fails with invalid signature"
    - "create fails with uuid of signed manifest"
    - "multiple locators per line"
    - "multiple signed locators per line"
* application.yml.example: new configuration variables
    - Rails.configuration.blob_signing_key
    - Rails.configuration.blob_signing_ttl

(refs #2755)
Merge branch '2755-api-collection-permissions' of git.curoverse.com:arvados into 2755-api-collection-permissions

Refs #2755

Conflicts:
	services/api/app/controllers/arvados/v1/collections_controller.rb
	services/api/config/application.default.yml
	services/api/config/application.yml.example
	services/api/test/functional/arvados/v1/collections_controller_test.rb
2755: fix merge conflicts (refs #2755)
2755: incorporate code review

* lib/locator.rb renamed => app/models/locator.rb
* Relaxed Locator.parse! handling of hint content.
* Locator.parse() rescues only from ArgumentError.
* Removed blob_signing_ttl from application.yml.example.
* Collections.show only matches locators that are preceded by a space,
  when parsing manifest_text.
Merge branch '2755-api-collection-permissions'

closes #2784, closes #2787
2755: fix blob signing bug. (refs #2755)
Merge branch 'master' of git.curoverse.com:arvados

Refs #2755.