Field: renamed `readOnly` -> `isReadOnly` and added `isPrivate`

Also made these named optionals on the Field ctor to ease unit testing
burden; also renamed `valueReadOnly` -> `isValueReadOnly` in FieldEditor