Ensure thread safety for RxUI objects

Make sure that internal property / implementation caches we use to avoid
repeated lookups are appropriately synchronized.

This situation normally doesn't occur since most ViewModels are created on the
UI thread, but should you end up creating a lot of them on various worker
threads, you could end up hitting the crash that this fixes.
Merge pull request #156 from reactiveui/memoizing-mru-cache-thread-safety

Ensure thread safety for RxUI objects