Added feature to approve client identity with email, password and two-factor code with command ′keyapprove′

Added feature to approve client identity with email, password and two-factor code with command ′keyapprove′, and added various help prompts to commands, such as asking for encryption password ( with typo check )  when generating a key, ′keygen′, and asking for the decryption password on bad decryption errors ( w/ 3 attempts ) for commands ′keyrevoke′ and ′who′. Will also ask for email address, password and two-factor code when requesting a client identity, using command ′keyapprove′ to be approved if the command args haven't been used. Added notices to commands ′login′, ′logout′  and ′whoami′ to use ′keyapprove′,  ′keyrevoke′ and ′who′ instead.