update DiskcachedOperation's logic

- add `DiskcachedOperationState`
- set object, operation has duplicate key then cancel
fix warnings

- adapt for Xcode 5.1
update Diskcached's property

- private method to public `directoryPath`