Support limited scope authkeys.

When checking if identity is authorized for an operation, check the allowed rights associated with the key and reject authentication appropriately.

Add Identity type.
Move Privilege class to common.
Make Privilege an enumeration and add CRUD and ALL sets.
Modify authenticate directive to provide an identity.
Use Identity instead of WhiskAuth in router.
Use Identity in entitlement check instead of Subject.

Add test for activation only key confirming lack of CRUD rights.
Consolidated RejectRequest error messages to a new singelton.
Refactored Authentication traits to be Promise-less. (Adopted from @markusthoemmes.)
13 files changed