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