Fix deletion for many-to-one indexing

Fixes #376.

It is possible to point multiple types and buckets to the same index.
The object key alone is not a unique identifier as the same key could
be repeated across types and buckets.

This patch fixes the deletion code to delete on the actual unique key
which is type + bucket + key.  Other changes made include:

* Expand the essential test to verify deletion and sibling cleanup
  work correctly when using the same key across multiple types and
  buckets.  Add unicode and special chars to additional verification.

* Update the AAE test to to pass the full key when making remote call
  to `yz_solr:delete`.

* Use the ?DEFAULT_TYPE macro in case the default type is changed
  before 2.0.0.

* Change `yz_rt:random_keys` to return binary keys.

* Handle legacy objects (pre 2.0.0) in `encode_delete`.

* Make sure to pass the lager transform when compiling the Yokozuna
  driver and make the `build_bb_driver` function more robust in
  general.