Implement full-stack saving on moc category

@mgorbach 
Addresses #14
@ndonald2 I ran into problems when `performBlockAndWait` would execute inline, not on another thread. Therefore, it wasn't wrapped in an autorelease pool. Managed Objects would end up leaking through the `performBlockAndWait` work, and they would end up getting released when some outer autorelease pool was popped. As you can imagine `- [NSManagedObject release]` does real work, and I got crashes because that method was executed in an unsafe / unprotected threading context.