ability to update password and add new machines

Noted several methods that were not yet safe for concurrent use.
copy byte slices where they're being modified
make UpdatePassword() and UpdateLogin() work w/ tests
UpdateAccount()
make sure undesired tokens are omitted
verify Machine count and ordering after NewMachine()
no more need to return isDefault from FindMachine

Now that we have Machine.IsDefault(), there is no need to indicate
whether the machine was a default machine as part of the FindMachine()
func return values.
make NewMachine() safe for concurrent access