Made os::system async signal safe.

Review: https://reviews.apache.org/r/20127
Added a few methods for net::MAC and net::IP.

Review: https://reviews.apache.org/r/19982
Updates download version listed in Getting Started guide to 0.18.0
Fixed process::await and process::collect to take const references.

Review: https://reviews.apache.org/r/20231
Added a metrics API.

Review: https://reviews.apache.org/r/18718
Removed timeouts in interfaces in favor of Future::after.

Review: https://reviews.apache.org/r/19672
Used Future::after in Network.

Review: https://reviews.apache.org/r/19674
Cleaned up master detector usage in tests.

Review: https://reviews.apache.org/r/19834
Refactored State::names to return a set instead of vector.

Review: https://reviews.apache.org/r/19835
Added log implementation for state storage.

Review: https://reviews.apache.org/r/19007
Updated protobuf::read to support reading from pipe, socket or FIFO.

Updates stout's protobuf::read by introducing the "undoFailed" flag
which should be set towards false (default) on file descriptors that
are connected to a pipe, socket or FIFO. This flag may be set towards
true on file descriptors supporting random access, enabling seek
position reverting (aka undoing) on failed read attempts.

Review: https://reviews.apache.org/r/20216
Updated uses of protobuf::read towards explicit undo where needed.

Review: https://reviews.apache.org/r/20237
Changed Executor::resources to option type.

Yet another split out of the task-info RR (r19795/r18403) which turns
Executor::resources into an option type. It is needed when the
executor info isn't known up-front (the main motivation behind the
task-info RR) and the executor resources therefore cannot be known
until after the containerizer has launched the container.

Review: https://reviews.apache.org/r/20219
Removed unused using process::UPID clause in src/cli/resolve.cpp.

Review: https://reviews.apache.org/r/20310
Added EXPECT_SOME_NE to stout gtest.

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