Fix Tombstone handling, expose to client. 

There were a number of issues with the client as to how tombstones
were being handled. These changes create (IMHO) sane and consistent
behavior regardless of protocol (HTTP/PB)

1) Tombstones will only be returned if the `returnDeletedVClock(true)` method is
called on `StoreObject` / `FetchObject`. If this is not called, tombstones will
either not be retrieved in the case of PB or silently discarded in the
case of HTTP. They will not be passed to the `Converter` or the `ConflictResolver`.
This also applies if the user has called `StoreObject.returnBody(true)`

2) Regardless of whether there is only a tombstone or a set of siblings
which contains a tombstone, an object representing a tombstone will be 
returned from the underlying original clients if tombstones have been requested. 
This solves a problem where previously two different behaviors occured depending 
on which of the above was the case.

3) The default `JSONConverter` will no longer crash if a tombstone is passed
to it; a new instance of the user's POJO will be created and returned. In addition
as a convenience a new annotation (`@RiakTombstone`) is available. The user
can annotate a boolean field in their POJO which will be set to true if
the object represents a tombstone.

4) The `IRiakObject` interface (and our `DefaultRiakObject`) now has a `isDeleted()`
method. This will return true if the object represents a tombstone.

 Addresses #157