User model updated to cache supervisor status

To enable search for supervisor / student questions the user model needs
a column containing the supervisor status. This was added. Updates to
the cached value are made every time a new user object is instantiated
and the supervisor state is asked for using getSupervisor().