CacheServiceTest: clearMem based on free memory

To attempt to limit the number of iterations (and thus memory
allocations) by the clearMem method, update to create a byte[] instead
of String[], of size Runtime.freeMemory() / 2 (with freeMemory queried
the first time clearMem is called, per method).

Note that freeMemory can not be queried every time clearMem is called,
otherwise you will get Zeno's paradox (or something similar, if we
weren't dividing by 2... the point is, if we're waiting for GC to run
and trying to allocate memory, there will be less memory available next
time we run clearMem).

This should relieve any memory limitations of running this test.

Closes #110