Handle invalidate in identity plugins correctly

Returning a True from the invalidate() call means that something has
changed within the plugin and the session should reissue the request and
expect the plugin to authenticate itself.

This means we should only return True if something actually changed,
because re-issuing the request if there was no auth_ref will not change
the outcome.

Change-Id: I012dacc93b1fcaee31d31a49e95db5a38044f211
Distinguish between name not provided and incorrect

When loading from config we need a way to determine if a plugin name was
specified incorrectly or was not specified at all. We need this to
determine if we need to load a fallback plugin.

This is much more in line with how CLI loading works and how it should
have worked initially.

Change-Id: I5547b6e169abc4f1850ff205a8f054a617785c2c
Closes-Bug: #1359618
Allow providing an endpoint_override to requests

As much as I'd prefer not to need this functionality there are plenty of
existing clients that we want to have use the adapter that can accept a
bypass argument such that it ignores the service catalog and uses that
URL for all requests.

We therefore need to be able to support similar functionality in our
adapter.

Change-Id: I206705241ff9b84967d0d9c089b4795bcc26b65e
Add version parameter to adapter.

The version parameter was left out of adapter previously because setting
a version number triggers discovery and I felt that it was not ready for
the other services.

However if it isn't set then it won't be used and we may as well
implement it here once rather than have the individual services that do
support it override it themselves.

Change-Id: I707380a01175dc19b59de32cbb8fd2bb123d7335
Merge "Allow providing an endpoint_override to requests"
Merge "Handle invalidate in identity plugins correctly"
Merge "Add version parameter to adapter."
Merge "Distinguish between name not provided and incorrect"