AFJSONRequestOperation processes JSON before isFinished set

The issue here was the `AFJSONRequestOperation`'s `responseJSON` method computed its result lazily. Therefore, if called from multiple threads, things would blow up. The solution proposed in this PR is to process the JSON prior to marking the operation finished, on the thread on which the connection finishes. This means that callers of `responseJSON` are not burdened with processing the JSON, and that property can be a simply read-only property.

Long-term, we're going to need to replace our use of AFNetworking 1.0. We may do this next milestone as we move towards using background transfer for backup/sync.

PTAL @floatplane @DawnWright @charlesmchen 
I'm sorry, I neglected to put this fix into AFNetworking before updating the AFNetworking submodule.  I've updated develop recently, please update/rebase.

I discussed with @julianwa whose preference was to modify AFNetworking to not call this error method, but I think it'll be better to just remove this assert.  I think it's valid to call the error method even if the operation hasn't finished.  No one who cares about the final error state will expect "error" to return the final value before the operation finishes.  That's how all operations work.  Is that okay @julianwa ?  

See https://github.com/FiftyThree/AFNetworking/commit/55e9ed2e7c6ac7634b19da0e457f334b6b5cb1d1