Offline or batch programs might want to read NoteDb changes from the
repo but without any chance of writing to the repo and incurring
contention. Support this by allowing NotesMigration to specify
readChanges() = true and writeChanges() = false, which was previously
disallowed. Now the behavior of writeChanges() = false is either a
no-op or a hard failure, depending on whether reading is enabled.
Change-Id: I3255a3380c50dcc3e52028f146b1d36d83bfdd41