Encryption API streamlining

* `DocumentState` now doesn't just accept encyption options passed down from
  `Document` contructor. This was not usable anyway as encyption requires a bit of
  set up. Now `encrypt_document` is the only public API for document encyption.
* Removed `ecrypt` attribute from `DocumentStete` as it wasn't used anywhere.
  Presence of encryption key is an indicator of document being encrypted.
* There's no need to modify `options` argument so now values are just being
  fetched out of it.