feat(http): allow caching for JSONP requests

Closes #1947
JSONP requests are always essentially GET requests, so it would be cool if we could just rename the method to GET --- but this would take a bit more refactoring, so this is fine for now.

I think this implementation is generally fine, so LGTM