Ensuring presence is updated

Signing out and back in again caused the presence table to be dropped, and never properly initialized or updated again. This fixes that issue through a few different bits of code.