Refactor clock to simplify libev cut.

Review: https://reviews.apache.org/r/28315
Initialized EventLoop and Clock earlier.

Review: https://reviews.apache.org/r/29225
Add enable-libevent flag to Libprocess.

This flag will be used to distinguish between libev (default) and
libevent.

Review: https://reviews.apache.org/r/28319
Add multiple include guard to libev.

Review: https://reviews.apache.org/r/28320
Introduce libevent header and implementation.

Review: https://reviews.apache.org/r/28321
Add construction and conversion from / to timeval for Duration.

Review: https://reviews.apache.org/r/29226
Introduce libevent clock implementation.

Review: https://reviews.apache.org/r/28322
Introduce libevent poll implementation.

Review: https://reviews.apache.org/r/28323
Move poll based socket implementation into poll_socket.cpp.

Review: https://reviews.apache.org/r/28467
Add a factory pattern for constructing a Socket.

Add a factory pattern to allow construction of different
implementations of the socket interface. Remove default constructor
from Socket.

Review: https://reviews.apache.org/r/28670
Virtualize Socket::Impl interface.

Review: https://reviews.apache.org/r/28671
Fixed compilation issue on OS X with libev.