JBTHR-32 QueuelessExecutor doesn't shrink with keepAliveTime

- Fix remaining calculation in awaitTimed() method
- Make sure to call runningThreads.remove() at the beginning of finally block in run() method
- Add test case for keepAliveTime shrinking
Merge pull request #13 from nekop/JBTHR-32

JBTHR-32 QueuelessExecutor doesn't shrink with keepAliveTime