Add Item.saveTo() to save imported item to a new vault

As part of this, add checks for an item having its content
set before saving the item and also tidy up how Item
determines whether there is content saved in a vault
that can be loaded in getContent().

If Item.updatedAt is non-null and a vault is set then
getContent() will lazy-load the full content from
the vault if necessary.

Item.createdAt is not used because it is not present
in the overview data in contents.js, whereas Item.updatedAt is.

Add Item.isSaved() as a way to check whether an item
has been saved to its vault.

This also optimizes getContent() by avoiding re-loading the item
from the .1password file if the encrypted data has already been
fetched.