This'll only create a cached version of `modules[uri]` if it doesn't throw on parsing or readURI, so this won't create a cache if unsuccessful. Added a test for it though, that'll throw on additional requires. Testing requiring `file.json.js` twice will return the same instance is done on [L206](https://github.com/mozilla/addon-sdk/pull/1275/files#diff-34aa30417456f07d38bc049c7986cedfR206)