Reworked the User module

Made it more efficient so that the auditing is more simpler. Before it
was removing all roles, then adding the roles needed. Now it only
removes roles it needs to before adding them. A bug in the auditing was
also fixed where the trigger didn't include the "D" character to
indicate a delete.