An attempt at (what I think is) a sensible Java thread pool implementation