Move the Clock interface and add a Calendar interface.

This was done for two reasons:
1. Remove the dependency on the FlowManager in order to
   use/implement the Clock interface.
2. Easy mocking of Date/Time methods in classes that
   use Clock/Calendar in place of static (unmockable)
   methods such as `new Date()`

- Move the Clock interface to a more sensible location.
- Implement the Clock interface in the DateUtils class.
- Add the Calendar interface for Date related functionality.
- Rename Clock#elapsedRealtime() to Clock#currentTimeMillis()
  to more accurately reflect the actual behavior of the method.
- Deprecate Clock#elapsedRealtime() in favor of #currentTimeMillis()