WIP: added apiserver and api client implementation of change password.

Added the api server and client set password command

Added the change-password user command

Thing to consider: 
> SetPassword only lets you change the password of the currently logged in user. Should the api really force this or should the commands force this behaviour (but not allowing the user to be specified)

> The change-password command writes the new password back to the yaml. Maybe the new file should be output as well?
I'm open to suggestions here, but last time I worked on the user commands it was suggested that having them in the command line history wasn't a problem as the password is stored in pain text in the jenv file anyway, but I'm open to suggestions. One question I had was if not specifying a password should generate a password - instead of prompting the user for one, what do you think?