Change FileLockingCache so that a cache size of zero means 'unlimited'
It was once this way? Maybe we just thought so, but looking at this:
it's clear that a cache size of zero is an error.
We probably only need to fix this test above and alter:
those three methods to behave 'specially' when the cache size is zero.
Then test - just make sure that the class works when the size is zero since we cannot make an infinite cache...