Use the nonnull attribute to ensure correct API usage

compile-time errors ≫ run-time errors
Expose any errors in the standard data store helpers
Make the compatibility module building from the test target
Re-introduce performWriteBlock:success:error: