Added support for a CompletionService: HazeltaskCompletionService
Fixed some generics warnings
Fixed all warnings
I decided the ID should not be parameterized

I don't see much of a point in customizing the ID of a runnable and
just complicates the API.
Simplifying dependencies for classes, and adding a few more metrics
More cleanup, better thread naming, more javadocs