Added MR_clearNonMainThreadContextCache method

Previously, NSManagedObjectContexts cached for non-main threads were
not cleaned up after [NSManagedObjectContext cleanUp] was called.  As a
result, these outdated NSManagedObjectContexts (accessed via
contextForCurrentThread) could be surfaced in later calls to
contextForCurrentThread and produce unexpected results.  In the case of
deleting the persistent store and recreating the Core Data stack after
calling [NSManagedObjectContext cleanUp], these contexts would appear
to work properly (e.g. saves and fetches worked fine), but they
wouldn't persist changes to disk.

To alleviate this problem, made the MR_clearNonMainThreadContextCache,
which is called during cleanUp.  Also, we now fire a notification when
cleanUp occurs so other cached NSManagedObjectContexts can be cleared.