Use abstract base class for identity driver

Use the abc module for managing abstract base classes in the driver
layer.

bp abstract-base-class-drivers

Change-Id: Ifc3b7c158a3a26ca0295e5e133d0108a357b1e37
Remove unused member

keystone.assignment.backends.ldap:Assignment._identity_api was not
used, so remove it.

Change-Id: If4dc5a47c87e9aaf97e3db20a9b813ba32754bea
set user_update policy to admin_required

This changes the default policy.json to prevent users from changing
their own attributes such as password, name, or default_project_id.

Closes-Bug: 1237989
Change-Id: I7de5fff3d72a76b78113e289c57a9fac2096395f
Merge "Use abstract base class for identity driver"
Merge "Remove unused member"
Merge "set user_update policy to admin_required"