Multiple tokens support + major refactoring

This is really to address issue #4, but I haven't found a way of attaching the pull request to that issue.

Basically I wanted to add support for multiple accounts, but modifying the current implementation to support that was above my skills. I therefore refactored the code quite heavily - split the functionality into more granular pieces and the adding of the support for multiple accounts was not that difficult after that.

Note that the UI is heavily changed, too. The key generator is "inlined" in the token definition screen, which resembles the previous "Options".
I pulled out the HEX representation of the secret, but that is easily added back if someone finds that necessary.

This version is incompatible with the previous one. The users will have
to redefine their tokens, because the persistence format changed to support multiple tokens.