use a custom BulkShardProcessor in the IndexWriterProjector

the BulkShardProcessor will retry on failures due to a full
thread pool queue and block the .add() method.
add another test for BulkShardProcessor testing the failure case
autocreate indexes synchronously on bulk inserts
Id & PartitionName classes using BytesRef now instead of String

this avoids unnecessary ByteRefs<->String conversions
added increasing delay to BulkShardProcessor retry logic
fixed BulkShardProcessor.add() blocking while retry is running