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
client side of NetworkInterfaceWatcher
cleaned up the change-password jenv file interface, simplified the usermanager test

use readpass from latest utils
Refactor Action, per new names.ActionTag changes, and to improve internal structure
Merge remote-tracking branch 'upstream/master' into 121-networkinterfaceswatcher
merge latest from trunk
change StringsWatcher to NotifyWatcher
update bodie's code with new signatures
Add new proof of access put logic
cmd/jujud: synchronise upgrade steps and ensureMongoServer

It's possible for the upgrade steps to complete before the
state worker starts, thus preventing it from initialising
mongo properly on upgrade. This PR makes it so that the
upgrade steps runner waits for ensureMongoServer to finish
before proceeding.

Maybe fixes https://bugs.launchpad.net/juju-core/+bug/1334273
Merge remote-tracking branch 'upstream/master' into 121-networkinterfaceswatcher
Update state/api and state/apiserver usages of new api too, address @howbazaar's comments
Merge branch 'master' into action-tag-refactor
Merge remote-tracking branch 'upstream/master' into 121-networkinterfaceswatcher
Patch version number in some bootstrap tests to allow tests to pass with non-dev version number
Merge remote-tracking branch 'upstream/master' into 121-networkinterfaceswatcher
remove unused function type
move windows specific code to windows file