Add utility methods to recursively list and copy directories

Also fix several bugs in VFSUtil.rmrf()
Implement saving of new items to the 1pass vault

Implement saving of new items and updating the contents.js file
Get CLI 'add' command test passing

 * Save timestamps as integers rather than floats
   in contents.js and .1password files by adding missing |0 coercion

 * Initialize the folder UUID property to an empty string for
   consistency with how 1Password represents an item without a folder

 * Store website for login entries in the item's general 'location'
   field as well as in the URL list.

 * Make the 'title' argument to add a single parameter rather than
   treating all arguments to 'add' after the type name as part of the
   title.

 * Correct handling of password prompts other than for the master
   password in the fake terminal implementation in the CLI tests.
Create a copy of the vault for the 'add login' test

The other tests do not modify the vault so they can run directly
in the source dir but tests which do should operate on a fresh
copy of the vault.