support for additional attributes in User object

I think it would be really helpful to be able to attach more attributes to the User interface.

Implementation could be much nicer. We don't need the fields in the User class anymore but I didn't want to break any assumptions or existing tests.

If the change is accepted I can also rephrase the README.