Use assertException over expectException. Closes #327.

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. Refs #280 and #327.

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.