Watchdog changes. Moved to package
org.threadly.concurrent.future.watchdog, there is now three implementations
ConstantTimeWatchdog- this implementation matches the current
Watchdogexactly, having a timeout specified at construction which all watched futures will be canceled at if they exceed.
MixedTimeWatchdog- This implementation matches the current
WatchdogCache, allowing the timeout to be specified at time of submission of the future to be watched
PollingWatchdog- This new implementation allows more custom timeout checks, allowing an arbitrary boolean to indicate if a future should be timed out or not.
RunnableChain was moved to package
org.threadly.concurrent.wrapper due to its nature of just wrapping a collection of Runnable's