feat(clone): option to not clone buffer, support custom properties

option `{ contents: false }` causes the clone to reference-copy buffer contents.

Custom properties that exist in the original file are deep-cloned to the new File.