Fix issue #54 and improve recovery from simple errors

Fix issue #54 by filtering out blocks that have no ID before checking for duplicates.

Also change the logic in the edit mode so that if anything throws a RecoverableError during the re-encryption phase then the user is given the option to edit the file again. This helps prevent the loss of large edits over a simple typo and gives a user half a chance to try again or preserve their changes.