Reworked account creation

- Rewrote account creation module to use a unique, random account
  creation key instead of "hashing" some values.
- Very similar to how reset password works
- Account creation module is mostly rewritten, could still be cleaned up
  a bit
- Add members code really needs to be rewritten