Require PHP 5.5

It doesn't make sense to test performance on anything less than
PHP 5.5.  The core of PHP 5.3 was released in 2009 - nearly
four years ago.
Explicitly clear caches

Deleting the index should clear the relevant caches, but add
an explicit cache clear just to make sure.
Clear index/cache before each test

The index and caches need to be deleted + reloaded before each
test run.  Results are not comparable unless each client is
operating on the same clean slate.

If you don't clear the test results, ES will be "warmed" by
queries from the previous client, leading to reduced latency
Make PHP version more lenient

Forgot to specify a patch number :)
Warm the JVM

This loops over the tests and executes them against elasticsearch
so that we can warm the JVM and its JIT output.

Also pipes output to null for sanity
Refactor timing mechanism by injecting Stopwatch

The timing code has been refactored to make it more precise.
Previously, the timing included the function call as well as any
checks to determine if the method was successful (issets() and array
checks mostly).  This is not technically accurate, as that is
test validation, not the library itself.

All clients have been modified to accept the StopWatch object
for each method, so that they can call start/stop themselves.  This
allows much finer control over the timing.  The object is passed
by-reference.

Similarly, the timing of the entire client was very inaccurate,
as it included instantiation time of both version of clients
in the constructor, as well as any error handling and bounds checking.

More accurate is to just sum up the individual method times.

Also added some prettier formatting
Add Persistent vs Transient tests

This creates a new test type called "persistent".  The difference
is how the client is instantiated.  In the old ("transient") tests,
the client was rebuilt on every request.  This is a great way to
profile use-cases where you need to instantiate a client
quickly and fire off a few queries (e.g. autocomplete, suggestions,
even regular search-boxes).

On the other hand, this doesn't accurately represent cases where
a client is required to maximize throughput over a large number
of queries, such as bulk importing documents or performing
heavy analytics.

The new "persistent" test instantiates a single client and uses
that for all tests.
Add specific Elasticsearch-PHP configuration

Sources dev-master to use some of the newer code that isn't tagged
yet.

Sets various defaults depending on the type of test, to optimize
for the particular scenario.
Wait for yellow cluster state

Due to the automated speed of index creation + document insertion,
it is possible for an index to be not fully initialized before
the script tries to add documents.

This adds an explicit "wait for yellow" call so that the index
is fully initialized before continuing.

Also removes replicas, since they are meaningless on a one-node
setup.
Specify benchmark type for JVM-warming runs
Refactor persistent/transient tests

No need to duplicate code, just a simple switch to instantiate
the client in the right place
Add the new command for run the README, fix CS standards
Add vagrant provisioning via ansible and documentation
Complete documentation and vagranfile fix