Cached null value checks

- Prevent null values from being cached
- Delete values with expired TTLs from memory cached when an attempt is
  made to access them
- Use default TTL when none is specified with Redis and APC
Added check to stop myself being confused by the tests not running.
Changed default cache to be APCCache if the APC extension is loaded. This allows DNS lookups to be cached across requests when the library is used in a web SAPI.
Added check that the cache is enabled.
Added extra check to ensure APC is functioning. This is apparently necessary as tested on PHP5.4 on OSX.
Merge pull request #17 from DaveRandom/fix/cached-null-address

Cached null value checks