Initial implementation of AsyncExecutor

AsyncExecutor will make code that uses a single background
thread much easier to test.
Initial implementation of AsyncOpsLogger
Cleanup

Inline a method parameter based on a constant
Code cleanup
Rename to OutputStreamDestination
OutputStream destination is also an async destination

Implements BasicOpsLogger.Destination and
AsyncOpsLogger.Destination, since there is no special
handling needed for writing batches to a PrintStream.