Work around SQLite3 incompatibility betwween read-only and shared-cache modes

In shared-cache mode all shared connections inherit the read/write access of the first,
so you can't have some connections read-only and some read-write. I'm working around
this by manually checking for read-only violations when in shared-cache mode.
Make busyRetryTimeout a time interval, not an iteration count

This makes more sense since the caller has no idea how often FMDB is
going to retry a query.
Also changed the internal retry interval from 20 microseconds(!) to
20 milliseconds. I believe this was a typo on Gus's part.