Change how Database encrypts Logins

- Database now creates random master key for logins. This key is stored
  along with the top Group in an anonymous struct, which gets encrypted
  on save.
- use []byte for passwords instead of string
- NewDatabase() now returns an error
- Group's AddLogin method no longer takes a master password as an
  argument
- add Encrypt() and Decrypt() methods to Login