Persist presence data to the database if requested

This allows us to restart the server without users being aware (well providing it restarts quickly enough).

Fixes #213
Could it be that this call throws any other unchecked Exception? Shouldn't this be handling **Exception**?