Make greenexecutor not keep greenthreads active

Instead of keeping all greenthreads active even
if they are not being used only keep the greenthreads
active if there exists active work to complete.

This saves resources (each greenthread takes up
memory) and allows a pool to shrink and grow in
a more dynamic fashion.

Fixes bug 1339406

Change-Id: Idc8ab8447045915a0ffbaf21fa5c4bdb7a9e3593
Merge "Make greenexecutor not keep greenthreads active"