Fix loading errors caused by inconsistent status codes

Status codes can be inconsistent across browsers so it is safer to base success/failure of loading a JSON file on being able to successfully parse it. This deals with failed requests (missing files) as well as malformed jSON files. Fixes #21