Changes to the way jobs are created. Now the runtime scheduling using
the .schedule and .at methods are executed asynchronously by default.
This can be changed by providing the :async option and setting it to
false.

Now the JobSchedulizer returns the CountDownLatch object so we can block
(if needed) to wait for the task completion or save it for later use.