Use assertException over expectException.

Removing faulty tests. These weren't reachable before.
Redis and Memcache tests are integration tests.
Correctly detect running memcached and redis.
Deprecating expectException in favor of assertException.

Removing tests that can no longer be run. But leaving other tests
in place.

assertException can be used much more safely, one can't forget that
code after a thrown exception expected with expectException isn't
run.