Basic Idle handler implementation

An idle handler will ultimately be a zero time timeout with
prioritisation layered on top of that.

Change-Id: I3f0802d5001172fc7b8409274bc5a3632e5dad34
changed some timer to idle

Change-Id: Ifd5e2d87732d3e537c7754e52be24ef768ecb8d9
idle: implement ProcessAllIdleHandlers.

It is often useful to flush all pending idle / GUI work for testing
and/or profiling - so make that easy to do with this new method.
Also tag idle Timers with a boolean, for ease of use.

Change-Id: I57e883be8fe8637b3715008e8074d0fa258ca0c3
idle: allow processing pending handlers remotely.

Change-Id: Idb835f1fb04a3f9ca2430781cabeb785285ccf7b
overlayermanagerbuffered: timer to idle

Change-Id: I40d19b20259f2d2dada32467efe4defe3ed4b07c
idle: unit test.

Change-Id: Ie48fb4260bf580010715777bc63974e4d635aed8