Reorganizes the code into separate versions for asyncdispatch and chronos so that we no longer have to rely on hard-to-maintain code that implicitly works with both asyncdispatch and chronos. This is a backwards incompatible change.