Added set_index. It allows to ensure that there is no other index on given field.
Added test suite for set_index
fix for set initialization in test_2i
Merge pull request #242 from pigmej/master

set_index added
Refactor model and handling of siblings.

In order to...

1. Better detect deleted objects and sibling tombstones
2. Reduce server roundtrips to fetch object siblings (which was an
   inconsistency between HTTP and PBC).

...this refactor introduces breaking changes.

This introduces the `RiakContent` class which models a single sibling.
An `RiakObject` that is NOT in conflict will appear to have one
"sibling". Objects that are strictly "not found" will have ZERO
siblings. Otherwise, the object will have as many siblings as are
returned by Riak. This is more consistent with Riak's model of
objects (values).

Most existing methods and properties that were on `RiakObject` have
been proxied in such a manner that if the object is not in conflict,
the corresponding property or method on the solitary sibling will be
invoked. When in conflict, these properties and methods with raise the
new `riak.ConflictError` exception. Except in the case of conflict,
this will ease transition of existing code to the new behavior.

The `get_sibling` method and behavior has been broken to reflect the
fact that all siblings are always requested and handled appropriately.
The method now produces a deprecation warning and simply returns the
requested sibling already in the object. The HTTP transport no longer
supports retrieving the "text" format of objects in conflict.

This commit also completes a refactoring of the HTTP transport to
break-out transport codec methods into a separate class/file, for
clarity and consistency with the PBC transport.
Correct usage and handling of last_modified metadata.
Normalize handling of vector clocks across transports.

This addresses the possibility that an object might be fetched from
one interface/transport and stored in the other. Instead, we wrap the
raw value in an object that can handle decoding and encoding the
format that the transport requires.
Remove put_new from transports.
Normalize handling of get/put responses in PBC to prevent clobbering of object data.
HTTP uses a plain tuple for links, so should PBC.
Correct documentation on exists property.
Correct documentation of _decode_link method.

It returns a bare tuple, not a named RiakLink tuple.
Updating README and tutorial to reflect that get_data() is no longer used
Merge pull request #244 from pims/master

The documentation still refers to using x.get_data() when it should just call x.data
Add test for sibling tombstones.
whitespace cleanup
Merge pull request #243 from basho/sdc-refactor-siblings

Siblings, and other bugs
Added text/plain encoding handling by default
- The old version of the client handled this out of the box
- Added a test to ensure it works
Speed up test server start
- Seemed to slow down with riak 1.3 which seems to be because of much
  more text output when starting
- wait_for_erlang_prompt was reading one character at a time and running
  a long regex against the output which was causing the output of riak
  console to stall
- Changed to read a line at a time speeds up from 34 seconds to 2.4 on
  my system
Merge pull request #248 from wkral/test_server

Speed up test server start