Properly cache empty values

This makes nils invalid values for mutating and returns length-zero byte arrays as empty results for cache hits.
wait ... I can't do math ... (so much for my math degree ...)