Complete activity logging feature.

Save activities when updating the user, or adding/removing devices.

Add methods to add/remove/get activities. Removing single activities
without calling *DBConn.DeleteActivities will leave the activity in the
activities list. This is because getting the item in the list requires
extra computation that's just not worth it, since I'm not planning on
adding the ability to remove activities individually.