Support IAM service access using IAM role - EUCA-7870

Add TemporaryAccessKey extension of AccessKey for details of temporary
credentials such as the key type (role/session). The subjects public
QueryIdCredential now includes the key type to allow authorization
decisions to be based on this.

Services are updated to specify the key types they support and IAM now
allows role credentials.

EUCA-7870
Authentication and reporting modules now use Entities - EUCA-8401

The authentication and reporting modules now use the Entities API for
persistence rather than the EntityWrapper API.

Entities is updated to support use in a try with resources statement via
the new TransactionResource class.

EUCA-8401
Merge remote-tracking branch 'origin/dev/sjones/EUCA-8401' into testing