Allow create_user to be idempotent

Was updating the password all the time which would invalidate any of
the users existing tokens and might cause temp auth issues.

This change adds a token-get check to allow the password update to be
skipped if it's already current.

Broke down the provider CLI Environment into three categories (from two).
* Boot is using the bootstrap token
* Admin is using admin endpoint and admin creds, only used by EC2.
* User is using api endpoint and user creds, used for token-get.

The current provider design has the basic input parms (user_name,
user_password, tenant_name) and the ones needed only for implementation
all required.   I think the implementation ones should all be optional
as the provider can easily get them for itself.  On that thought, with
this change I started with allowing identity_endpoint to be optional.
It is used only for the create_user and create_ec2_credentials ascions.
I believe this is the right direction for this provider.

Having said all that, I also know that we have begun work on the client
cookbook to have providers for many OpenStack resouces like keystone
items. Since that is not far enough along yet, I decided to make the
changes in the currently used identity provider.

Added missing EC2 tests.
Added logging of the CLI Environment.

Change-Id: Iec2eb748e20389ceb70c25d8bfcfd078e6de67ad
Closes-Bug: #1383821