keystone_user_role supports email as username

When defining the keystone user with the email address, the keystone_user_role doesn't handle it correctly.

user: "user@example.org"
tenant: "test"

keystone_user_role { "user@example.org@test":
  roles = '_member_'
}

Because of the use of the split('@',2) method, user and tenant will be parsed as:
  user: "user"
  tenant: "example.org@test"

By using rpartition('@'), it will be correctly parsed as:
  user: "user@example.org"
  tenant: "test"

A unit test for the keystone_user_role provider is available.

Change-Id: I68139910bb82c62f26ba3433456e5406c99541a2
Closes-Bug: 1341552
Install dependency python-memcache when token driver memcache.

Token driver backends.memcache requires python-memcache which not
installed by default. As result keystone crash with exception.

Patch install python-memcache when it's need.

Change-Id: I752a97ad9b3135a7336265760f0cd3304e0277b4
Explicitly setting of PKI token signing cert

Enable setting of the cert, key, and cacert for PKI token signing.

Replaces abandoned change https://review.openstack.org/#/c/93598

Change-Id: I91f1c3c6f2d1fcb477699b2b23b56cbe22006d4e
Closes-Bug: #1319470

Conflicts:
	manifests/init.pp