Add converting move construction and assignment to basic_waitable_timer.

This change enables move construction and assignment between different timer
types, provided the executor types are convertible. For example:

  basic_waitable_timer<
      clock_type,
      traits_type,
      io_context::executor_type
    > timer1(my_io_context);

  basic_waitable_timer<
      clock_type,
      traits_type,
      executor // polymorphic wrapper
    > timer2(std::move(timer1));
3 files changed
tree: fb2c612edfd20107f03e142a34839f7eeebe4aea
  1. asio/
  2. .appveyor.yml
  3. .cirrus.yml
  4. .gitignore
  5. .travis.yml