Refactor Core Data Context Handling

Our current SubscriptionStore is too tied to the main core data context. In this episode we'll split this behavior on to a new type that will manage persistence for us, as well as implement a solution to solve the problem of core data being initialized asynchronously. We want to delay our app's UI until we have a context we can use.

This is a companion discussion topic for the original entry at https://nsscreencast.com/episodes/413-podcast-app-refactor-context-handling