job manager implementation

Changes:
- added Twitter Snowflake-like UID generator
- added WaitPool thread pool implementation, will place stuff in queue and spawn later
- added PriorityPool will spawn according to watermark settings
- integrated both pools into pipeline, WaitPool is more suitable for single node tasks, while PriorityPool is used for multinode (cluster) tasks