Rework read-only tracking

This builds on top of pull request #14, and changes how read-only is tracked. Instead of tracking a reference, there is final boolean field which is checked before the static updater is touched.

It should have the same (or slightly better) performance characteristics, that may or may not be true.