Make a test in ClientTest more consistent

ClientTest->testDeleteIdsIdxStringTypeString assumed that new documents
created without a specified id or routing value would route to the same
shard as "1" and a different shard from "2" when there are two shards.
This wasn't always that case because:
1.  Documents without a routing value use their ids as a route.
2.  Documents that don't specify an id get a random one.

This sets the routing for the document to "1" which, luckily, does in
fact route to a different shard then "2" when there are two shards.  And
it will stay that way forever back Elasticsearch has to maintain a consistent
routing style or it won't be safe to upgrade.

Closes #633
Merge pull request #634 from nik9000/fix_test

Make a test in ClientTest more consistent
Stop ScanAndScrollTest from failing spuriously

ScanAndScrollTest->testQuerySizeOverride used the rewind method on
ScanAndScroll which executes a scroll query on Elasticsearch without making
sure that the index is fully allocated.  Apparently, this can cause
Elasticsearch to throw back an error.  We work around this by adding a
refresh before the rewind.
Merge pull request #635 from nik9000/fix_test3

Stop ScanAndScrollTest from failing spuriously
Merge some of update by document and script

These share many of the same options so it makes sense to merge them.
This also adds support for things like _retry_on_conflict and _routing to
updates by scripts.

Closes #628
Closes #627