read_only change

With this PR the read_only setting ONLY means that transactions with updates cannot commit. Specifically all other uses of the flag has been removed, and cluster slaves can now have their databases updated, allowing for reporting instances to be deployed.
Note that ReadOnlyDbException is now ONLY thrown on tx.commit(), not during the tx itself. So no methods should throw ReadOnlyDbException explicitly, or ReadOnlyDbException for that matter. Updating the commit to have current uses removed.