cleaner: Catch any exceptions while cleaner is running

If any exceptions are left uncaught, future scheduled tasks for the
cleaner will not run. See [1] for more details.

Also ensure we try to clean all entries by catching exceptions inside
the cleaning loop.

[1] https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledThreadPoolExecutor.html#scheduleAtFixedRate-java.lang.Runnable-long-long-java.util.concurrent.TimeUnit-

Change-Id: Ieb92488f00750375604c4a9e0e362cd1278af159
2 files changed