Actions in ROS 2

DDS appears to have support for asynchronous RPC which integrates with the modern C++ future and async infrastructure.

It could be a candidate for actions, but it would mean that the implementation would be tied to DDS.

@gbiggs: what is the intent here? Should actions be available to all RMWs, or would relying on DDS-specific infrastructure be acceptable?