Fix totp secret not getting stored with tokens

* Switched to passing around pointers for tokens so that tokens only
  exist in memory once there for when changed in one location they are
  changed everywhere :)