add --readonly (fixes #1)

All operations can potentially need to update the keystore
(new information may need to be captured). For now we allow
the client to specify an option that will force read-only
behaviour.