Add copy-on-write support.
The initial client of a data file decrypts the cached document. When
another client connects, it accesses the same document pointer as the
initial client until one client modifies the document; then a copy is
made for the client that issued the command. Depending on which client
SAVE's first determines which will get the checksum error during the
next command.
When all clients are done with the data file the cache becomes encrypted
again.
This improves both speed and memory for lots of clients using the same
data file since no cache decryption nor document copy needs to be done
for each client.