Change jellyfish to fetch data asynchronously

This changes jellyfish to fetch data asynchronously, not as part of the request flow.

Also cleaned up a good bit of cruft around the code, hopefully making it easier to read and understand what is happening.