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).
Rename endReadTransaction to invalidate
Documentation fixes
Rename test method
Update changelog
Fix a place still using the _table ivar
Throw an exception if invalidate is called on a read-only realm
Create a read transaction in refresh if one does not already exist
Give group a setter name that looks less weird when used for side effects
Rename isDeletedFromRealm to isInvalidated
Avoid setting _table on the objectSchema when not needed
Merge pull request #1156 from realm/tg-close-read

Add -[RLMRealm invalidate]