Checks in post-reviews.py to make more user-friendly.

This is a small fix but wanted most by me, whenever working on master
branch directly with small patches, rather than a dedicate branch,
post-reviews.py doesn't handle this situation but just fail with the
trace back like:

% ./support/post-reviews.py
Running post-review across all of ...
Traceback (most recent call last):
  File "./support/post-reviews.py", line 104, in <module>
    sha = line.split()[0]
IndexError: list index out of range

This is not quite user friendly or make a lot of sense. This patch will
handle the above situation and notice user useful information.

Review: https://reviews.apache.org/r/20364
Fixed lock issue in src/common/lock.cpp.

Review: https://reviews.apache.org/r/20404
Updated CHANGELOG for 0.18.1-rc1.
Updated ReviewBot to do 'make distcheck' instead of 'make check'.
Consolidated slave re-registration Timers into a single Timer.

Review: https://reviews.apache.org/r/19857
Added a configurable limit on the percentage of slaves that can be removed after the re-registration timeout.

Review: https://reviews.apache.org/r/20097
Added task reconciliation for unknown slaves and tasks.

Review: https://reviews.apache.org/r/20104
Updated killTask to only send TASK_LOST when a strict registry is in use.

Review: https://reviews.apache.org/r/20140
If a non-strict registry is in use, do not inform frameworks that slaves are lost if they do not re-register after a failover.

Review: https://reviews.apache.org/r/20383
Used LogStorage for all tests.

Review: https://reviews.apache.org/r/20431
Changed executor state recovery to allow run recovery in absence of executor info.

This patch let executor recovery recover runs in the absence of
executor info.  This is needed as new task-info patch will introduce
an intermediate state where the executor info hasn't been check
pointed. In this interim, the slave may fail-over and should be in a
position to clean up orphan containers (as for now, the containerizer
API doesn't provide a way to reconcile the executor info and it is
therefore not possible to recover the containers in this case).

Review: https://reviews.apache.org/r/20221
Fixed missing call to delete in Cluster.
Added missing #ifdefs for http parser in decoder.hpp.

Review: https://reviews.apache.org/r/20441
Changed registrar tests to use LogStorage.

Review: https://reviews.apache.org/r/20432
Improved Registrar performance by using a hashset on SlaveIDs.

Review: https://reviews.apache.org/r/19762
Fixed formatting in getting-started document.
Added containerizer.proto.

Adds containerizer.proto containing protobuf message definitions for
"Launch", "Update" and "Termination". All of those are used in the
upcoming External Containerizer.  These protos are defined within
their own C++ namespace: "containerizer".

Replaced slave::Containerizer::Termination with the
containerizer::Termination protobuf, gaining a serializable
Termination message.

The protoc results are added towards the Python Egg
(containerizer_pb2.py) and the Java package
(ContainerizerProtos.java).

Review: https://reviews.apache.org/r/20141
Added history to metrics library.

Review: https://reviews.apache.org/r/20015
Fixed public includes.
Fixed bug with generated headers.