Move KeyAgent interface and SimpleKeyAgent implementation into new module

Although specific encryption/decryption algorithms are linked
to the Agile Keychain format and 1Password vaults, the KeyAgent
interface itself is not.
Auto-lock vault after 2 minutes in web UI

 * Introduce EventStream<T> as a simple type-checked interface
   to a stream of events which can be listened on.

 * Auto-lock vault after 2 minutes

 * Add event for vault auto-lock and update web UI state
   accordingly.
Add 'main' entry to package.json file

This is required for compatibility with the upcoming
'jpm' tool that will replace cfx.