Move conversion to RFC1123 to its own class. Add
regression test for it.
Added time-expiry tests to the caches.
These are very primitive and just show that when enough time has passed,
even if no other updates are done (which might clear the cache),
an old enough entry is dropped. For these purposes, the caches are
initialised with a Clock object which, rather than the default of
calling System.currentTimeMillis, only changes its result when a
interval has been supplied to it. (Hence we don't have to wait for
real time to elapse, or perhaps not elapse.)