anchor.diff:  ==== getByEmail(string $email) : ?User
   
   Returns a *User* representing the user referenced by '$email', or *NULL* if no user with that email found.
  +
  +
  +=== Instance methods
  +
  +==== getID() : int
  +
  +Returns the unique *id* of the user.
  +
  +
  +==== getRegisterTime() : int
  +
  +Returns a UNIX timestamp of the time the user was added to the database.
  +
  +
  +=== Static methods
  +
  +==== __construct(int $id)
  +
  +The *User* constructor accepts the *id* of a user in the database as '$id'.
  +If no user with that id can be found it will throw a *UserException* with code *101*.
   
   
   ==== setupDB() : void
  
positive.code: Once a token has been used once it is removed from the database and subsequent attempts to verify it will return *false*.
  
  
  === Instance methods
  
  ==== getID() : int
  
  Returns the unique *id* of the user.
  
  
  ==== getRegisterTime() : int
  
  Returns a UNIX timestamp of the time the user was added to the database.
  
  
  ==== remove() : void
  
  Removes the user from the database.
  
  
  === Static methods
  
  ==== __construct(int $id)
  
  The *User* constructor accepts the *id* of a user in the database as '$id'.
  If no user with that id can be found it will throw a *UserException* with code *101*.
  
  
  ==== add(string $username, string $password, string $email) : User
  
  
negative.code: for more details.
  
  
  ==== remove() : void
  
  Removes the user from the database.
  
  
  ==== getCurrent() : ?User
  
  Returns either a *User* object representing the currently logged in user, or *NULL* if no user is logged in.
  