Added an IUser interface.

Instead of using a concrete class we are going to have an
interface the backends can implement.