Flush memcache during tearDown steps

This avoids the case where data from a previous test remains persisted and conflicts with subsequent fetch()/contains() of the next test.
File caches should always return boolean values for save()
Extract common setup()/tearDown() for file-based tests
Assert method return values and test additional PHP types in base test
Test deleteAll()/flushAll() behaviors for providers that share storage