Notifications overhaul

Port all the notifications from the website to the app. Icons slightly different because we use different sets (ionicons vs glyphicon). Added a few comments in the code.

cc @lefnire @huaruiwu 
I don't think we can do much in this case for the mobile app