Refactor ICachingService interface

- Remove return value on Set operations as it always succeeds
- Refactor method signature on SetAll to IEnumerable<KeyValuePairs<string, T>> instead of IDictionary<string, T>
Add memory caching test for SetAll
Refactor ICachingService interface

- Change SetIfNotExist to Add and SetAllIfNotExist to AddAll
- Fix the documentation on Set and Add operation to make the actual
behaviour more clear
Update memory cache set tests

tests to make sure memory cache updates the result of cached value
Update memory cache SetAll tests

Test to make sure SetAll can update cached item value if exist
Refactor memory cache tests
Add memory caching test for Add
Add memory caching test for AddAll