Expose delete_mode to riak clients

This change exposes the delete_mode parameter to
riak clients, so it can be controlled on individual
DELETE operations.

This is most useful if the global delete_mode is
set to ‘keep’, allowing a cleanup job (e.g. using
map/reduce) to later delete with mode ‘immediate’
or a time interval.

The parameter delete_mode is also exposed to http
and protocol buffer clients.
Undo http / protobuf API exposure

For the purposes intended, it’s enough to expose
this “feature” in the internal riak_client API, so
that it’s accessible to MR jobs.
Reduce impact of new vnode delete_v2 message

Only generate new delete_v2 message when
delete_mode is not ‘undefined’.
Let delete_mode be specified as a bucket property
Merge branch 'krab-delete-mode-14' of https://github.com/trifork/riak_kv into trifork-krab-delete-mode-14
Merge branch 'trifork-krab-delete-mode-14' into 1.4