Added unique_function public header and manual registration macros
Use unique_function in packaged_task implementation to support movable-only callables