1. Making cacheMemoryCost a property, which can be set when an engine is created, instead of having to subclass MKNetworkEngine..
2. Refactoring caching logic, so that responses are written immediately to disk, and also memory cache can contain objects other than NSData (in case we want to cache processed images..

Fixing compiler errors
posting OperationCountChanged notification after updating networkActivityIndicator state, so that the app gets a chance to modify the state as required
synchronized access to memoryCache. Also fixing a memoryCache related cache.. when the image is nil
Adding autoreleasepools around dispatch block, and making sure we don't run freezeOperations
cleaning up the operation execution logic..
basically deciding when to run the operation on the network.. it was a dirty if else block
enabling tests to run locally..
Making sure we call cancel and updateHandlersFromOperation for MKNetworkOperation on the main thread..
to avoid race condition crashes https://rink.hockeyapp.net/manage/apps/13832/app_versions/34/crash_reasons/1951186 ..
Also caching https responses by default