Removed an interface that wasn't really useful. Some tidy up.
Small tidy up.
Fixed the build progress logger a bit (some loggers may not have been cleaned up).
Attempted to fix the progress reporting for parallel build.

1. Made certain events consumed by the progress renderer hierarchical, so that they understand the parent. This way, we can render the hierarchy of statuses instead of keeping track of incoming events in a list and assume the hierarchy. The next few commits will take advantage of this new feature.
2. Progress logger factory maintains hierarchies of process logger based on the current thread. So, it assumes that single hierarchy belongs to single thread. I don't like it very much but I couldn't come up with anything better. Perhaps we need to make the hierarchies more explicit in the API. Perhaps it's good enough for now (seems better than it was).
3. Keeping of the hierarchy is lenient at this stage. E.g. it's possible to complete the parent operation without completing the child. In the next steps we probably should decide whether this scenario is tolerable or not. If not, we probably need to change the progress logger factory API so that it's not possible to have incomplete operations.
Status / progress bar uses events hierarchy to render the progress

1. This improves the parallel build behavior. It is still not completely pretty when parallel build runs because we're missing the Building 23% progress info. The fix for this comes next.
2. If the parent was not registered yet or completed, this scenario is tolerated currently. It needs to be revisited when we decide on the strictness of the general algorithm.
Improved the status / progress message for parallel build.

1. Now the 'Building 25%' is shown for the parallel build, too. The task execution listener explicitly declares the parent of the progress loggers.
2. I'm not very happy with progress logger changes, it feels there should be a simpler and more explicit implementation. Please review.