Tasks stop on unmanaged

stop tasks when entities are unmanaged, and better bookkeeping for scheduled tasks.
(also fixes eclipse IDE problems caused by checkstyle.)
actually, with `Asserts.succeedsEventually(...)` I need to do an extra `throw` inside the body.

especially for `Callable` I think we want

* `Asserts.eventually(Callable<T>, Predicate<T>)`
* `Asserts.eventuallyEquals(Callable<T>, T)`
* `Asserts.eventuallyTrue(Callable<Boolean>)`

The name `succeedsEventually` (which given the preponderance of conditions I am not thinking we reverse to `eventuallyXxxxx`) is misleading with callable.  I'd have just `eventually(Callable<T>)` and `eventually(Runnable)`.

Worth looking at the `assertj` library too.  I like the pattern `Asserts.that(X).eventually().verb(...)` which I think it follows.