cas: use tmpfile when writing into disk store

Instead of writing into a temporary disk store, calculating the hash, and then
rewriting into a new entry in the diskstore with the hash as the key, write to
a tempfile on disk outside the store and then use the new Import method to
move the file into the store.
it would be nice if these all went into a single directory for cleanup.