423926 - Remove code duplication in class IdleTimeout.

Removed code duplications, and also removed method close(),
unnecessary since onClose() was performing the exact same code.

Also reviewed subclasses of IdleTimeout to make sure that they always
call onClose() when they are "closed", to make sure that the timeout
does not fire and that there are no memory leaks (the scheduler
holding a reference to the timeout task, which in turn holds a
reference to the IdleTimeout instance).
Removed unused field.
Using org.junit.Assert rather than junit.framework.Assert.
423930 - SPDY streams are leaked.

With this fix, when streams are closed or failed, the stream is closed
and its idle timeout is canceled, avoiding the leaking.
Added comments about optimizations that may be included as part of
fixing 423974 - Optimize flow control.