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.
@contra `_contents` is an internal property ([L113-L123](https://github.com/stu-salsbury/vinyl/blob/clone-buffer-optional2/index.js#L113-L123)) because `contents` is virtual.