Used memory::shared_ptr instead of boost::shared_ptr.

Review: https://reviews.apache.org/r/20305
Added 'cref' and 'ref' to lambda:: namespace.

Review: https://reviews.apache.org/r/20306
Added process::async overloads for void functions.

Also used preprocessor macros to enumerate overloads.

Review: https://reviews.apache.org/r/20307