RealmResult iterators now detect changes to underlying tableview.

RealmResults now correctly identify any changes to the underlying query tableview and throws a ConcurrentModificationException if detected.

@kneth @bmunkholm @emanuelez 
`sync_if_needed()` might throw an exception so we need to wrap it in a `try` block.