Cache reload asynchronous

The cache reload mechanism has been rebuilt to run asynchronously and update the editor upon completion. Queries for step candidates are always done against the last known cache.

Code changes:
* Control over cache has been extracted from JBehaveProject to dedicated StepCandidateCacheLoader
* Unit tests added for StepCandidateCacheLoader
* ProcessGroup was dropped, MonitoredExecutor recreated instead; Code based on Executor interfaces.