clarify the const_cast in pop_task()
No more explicitly typing functions with return types
clean up template declaration of pool::add_task()