Achievements: Client-Server interaction + basic achievement popup

Refactored some bits. Greatest update is client logic for doing a debounced GET for new achievements. Some behaviour that might require reviewing: The client pulls for new, unseen (notified:false) Earned Achievements. These Earned ones on their own do not contain enough information to show the user so their related Achievements are pulled in, one by one. Usually the client discovers at most one new achievement though. It was the best way I found to do this.

Next up: Redesigning the user section in the navbar, maybe make it so it can be plugged into other places on the website as well. Test repeatable achievements. Get more achievements in the database in general.