added apiserver and api client implemenation of change password.

Added the change-password user command
feedback from review

added more tests to the change-password command
Added --generate and --password flags.

Try to revert the password if the environinfo write fails
cleaned up the change-password jenv file interface, simplified the usermanager test

use readpass from latest utils
Add new proof of access put logic
remove unused function type
move windows specific code to windows file
introduce mustOsVersion
Fix tests for osx
Fix windows version
wording
Various test tweaks, code review fixes
utils/ssh: set ServerAliveInterval option

Bootstrapping Azure was seeing the CLI
hang at "apt-get upgrade" with no further
output or command completion. Inspection
of cloud-init-output.log on the server
showed that the bootstrap procedure
completed successfully.

The problem appears to be due to the
"apt-get upgrade" taking a long time on
Azure: over 6 minutes. This inactivity
causes the ssh server to discontinue sending
output to the client. To resolve the issue
we need to ensure the ssh client sends
keepalive messages to the server.

Fixes https://bugs.launchpad.net/juju-core/+bug/1316185
provider/azure: use affinity group in vnet site

Revert change based on observations of vnet
related issues. Azure console displays advisory
warning about vnets tied to locations, suggesting
vnets be tied to affinity groups to mitigate.
make sure api user of tags is consistent with existing apis
Initial filtering of endpoints for public IPv4 addresses.
Simplified getting the address to return, it's always the first one.
Add link to docs
Clean up tests.
rename mustOsVersion to mustOSVersion