Refactor User class to store data from list=users

This makes the class lazy and only fetches data
when we currently don't have it.

Also implemented the hasEmailEnabled function (fixes #115)