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
Merge "keystone_user_role supports email as username"
Merge "Install dependency python-memcache when token driver memcache."