cache library

Content-addressable cache for resolved Ball modules.

Layout: ~/.ball/cache/sha256/

Atomic writes: write to temp file, then rename. This prevents partial reads and cache poisoning.