Secure cache contents and support isolated caches

As pointed out in #5 concurrent invocations could collide. For a single-user system trying to cache their prompt this is actually beneficial (since separate shell sessions can reuse the same cached data), but is undesirable in the general case. Need to:

Ensure that cached data can't be written or read by other users, which also suggests cache dirs should be separate per user to avoid collisions

Provide a way to either manually set the cache dir or to namespace the cache (which under the covers would use a separate dir)