Improvements to grin parser

Added /grin/get_by_keyword
Added /grin/get_by_subject
Fixed /grin/get_by_description
Added exception handler to deal with missing pages cleanly when loading the data in.
Made all image sizes optional as some times the medium one seems to be missing.
Cleaned up the code to remove a lot of the duplication.