shared: implement parseJSON and getCategories to use the API
fix improperly indented config in Gruntfile
Gruntfile/watch: watch test/index.html
tests: all to coffeescript;
add test for Memrise._get
Memrise: rename parseJSON to parseLearningJSON
Memrise: test parseLearningJSON
grunt: add a description for release task
page/main: don't use dashboard when visited
memrise: handle no login
bump update interval to 15 minutes
main: make openURL less verbose
fix a typo
memrise/getCategories: return xhr
opts/topics: use Memrise.getCategories
parseLearningJSON: insert empty courses array
main: use Memrise.getCategories
tempfix: remove course related stuff from processGroups
tempfix/opts: remove course stuff
opts/topics: use xhr#always() to trigger loader hide

done() only fires on success