races cause 404 when removing user from project

When removing a user from a project, the assignment manager retrieves a
list of all roles the user has on the project, then removes each role.
Each (user, role, project) tuple is removed with a separate call into
the driver. If, before a particular role has been removed, that role is
deleted by another request calling into the manager (i.e., via
delete_role), the call into the driver by the user removal request will
raise a RoleNotFound exception and the request will return an HTTP 404
error. Furthermore, any roles in the list after the exceptional role
will not be deleted.
This patch add try-except around the
driver.remove_role_from_user_and_project calls to catch the RoleNotFound
exceptions, so that roles after the exceptional role will be deleted as
expected, and a 404 is not returned.

Closes-Bug: #1257390

Change-Id: Ic48d869711d0275d402616c550fc0e7444b0a0d0
Merge "races cause 404 when removing user from project"