Fix Grades' latest HTML changes (thanks Porto) and start implenting cached data (sorry for including it in thiss commit but I was too disorganized to start implementing it in a separate branch)