Add -[RLMRealm endReadTransaction]

Also leaves newly created RLMRealm instances without a read transaction as this makes it simple to do so.

Things to bikeshed:

1. The name `endReadTransaction`. I'm not a fan. `close` is wrong since it doesn't actually close the file and anything involving `release` sounds refcounting related.
2. What should `refresh` return when called on a Realm with no read  transaction? Currently it always returns `false`. Maybe it should always return `true`?
3. Do notifications make any sense for realms with no read transaction? Currently they work as usual (except with no notification collapsing because `has_changed()` always returns true when the shared group doesn't have a read lock).

@alazier @cmelchior @emanuelez
Another thing: shouldn't a dealloc without an explicit commit, rollback() instead (now that's supported)?