Don't reinstall pods on Travis
Don't reinstall pods on Travis
Added workspace/scheme to travis conf
Added test scripts
Fixed test scripts
Don't use before_script

xctool is already installed in travis
Introduce a context manager

The context manager holds onto the main (UI) context, master context (background disk writes), and creates derived (scratchpad/background work) contexts on demand.
Saving a derived context naturally propagates the changes to the its parent, the main context. Any main context save also persists the data to disk in the background.
Remove unused propertiesToFetch

propertiesToFetch is not used unless resultType == NSDictionaryResultType, which cannot be used with a NSFetchedResultsController. This was also causing a periodic database corruption.
Combine merging of posts/pages into AbstractPost

- Cleans up very similar methods in Post/Page

- Moves merge handling to AbstractPost model, instead of within Blog model
Update comments/categories to merge in models

- Comment model merges remote comments

- Category model merges remote categories
derivedContext method name change + notifications

- derivedContext -> newDerivedContext

- Use notifications to monitor propagated changes to the main context to save it, and the master context.
Keep objects on same thread & only sync push once

- The only place createBlog is called is from saveSelectedBlogs, which already syncs the push notification info.

- Fix an issue where the blog created on the backgroundMOC was being used on the main thread. Calling syncBlogWithSuccess:failure on the same creation thread now.

RE: https://github.com/wordpress-mobile/WordPress-iOS/commit/eb3055a47b85d67d5270ad9dbbcd9c2aa95ead30#commitcomment-4417653
Fix up NewAddUsersBlogsVC + object faulting issue

- NewAddUsersBlogsVC and AddUsersBlogsVC were confusing. Ensured blog creation was the same as AddUsersBlogsVC

- Use existingObjectWithID instead of objectWithID, which on a second sign in after sign out was causing an error with Core Data.
Fix error with blog across contexts

- Using the original blog worked, but the context didn't recognize any changes therefore not making the objects permanent and causing other issues.

- Use ContextManager in BasePost.
Updates to ContextManager:

- masterContext -> backgroundContext. The backgroundContext is used for general background tasks as well as the disk writer context.

- mainContext is still used for the UI

- newDerivedContext is still available for usage, for either background tasks or as a 'scratch pad'.

There is a crash (EXC_BAD_ACCESS code 2) on iOS 6 on mergeChangesFromContextDidSaveNotification:, but not on iOS 7 that we're working on.
Work-around for iOS 6 core data merging issue
Set merge policies to avoid conflicts.
Don't override hasChanges for a NSManagedObject

- Interferes with merges on contexts
Collapse common saving methods
WIP on derived contexts across the app:

- Make sure contexts perform work in their respective queues

- derived context -> main context -> background writer context is the current architecture being used

- Account created on main context as there were many issues seen with a derived context

- Make sure any success/failure blocks are called on main thread as they could be executed on a derived context's queue

- Turned off blog syncing on blog creation, as blogs weren't saved yet and caused issues with contexts