Removed specific version dependency for protobuf
Merged with JP's changes
* Removed Either<TLeft, TRight> construct from RiakOptions.
* Updated failing unit tests to use RiakConstants.QuorumOptions instead.
A few refactorings

* Changed the ToSearchTerm functionality so that it can share
  string builders.
* Modified the hierarchy a little so that common functionality
  lives in an abstract class instead of having duplication
  sitting in implementations of interfaces.

More to do. This is an interim commit.
Fixed compile issues

* Also sorted out case in tests where we weren't creating the client
  in the right way.
Staging commit
Corrected use of Serializers in SetObject<T>
* Re-Added the Either<TLeft, TRight>
* Removed SolrTests
* Adding changes to unit tests.
* Removed SolrTests
* Updated JsonExtensions with Either<TLeft, TRight> support.
* Implemented ResolveConflict delegate and added parameter to `GetObject<T>`
* Updated `GetObject<T>()` to call `GetObject<T>(DeserializeObject<T> deserializeObject, ResolveConflict<T> resolveConflict = null)` internally.
Updated Tests project to use NuGet locally referenced JSON package
merging alleged conflicts
Fixed unit tests to correspond with multiple siblings being created on a single PUT.

- Updated unit tests extensions to include ShouldBeGreaterThan and ShouldBeLessThan.
- Updated unit test to use ShouldBeGreaterThan for sibling checks.
Verify Content Types

- Added checks to verify that a RiakObject.ContentType is set using a properly formatted MIME Content Type.
- Parsing conforms only to the loosest rules - it checks to ensure that ContentType contains a "/" otherwise it throws a formatting error directing the user to http://en.wikipedia.org/wiki/MIME#Content-Type
- Fixes #8
* Modified to set RVal to default of 4294967295-4.
* Removed ContentType check - was causing race condition during Put requests.

Closes #43
Modified the first ProtoMember to have a name attribute of "contents" instead of "content" to keep it inline with the specifications.
Updated request format
Merge branch 'feature/CorrectPBCMessageFormat' into develop
Merge branch 'master' of github.com:OJ/CorrugatedIron into develop
Updated `RiakPbcSocket.Write()` to send the message in 16KB chunks

Updated `RiakPbcSocket.Write()` to send the message in 16KB chunks
instead of all at once. This addresses issues seen when PUTting large
messages.

Details:

Problem:

Sending a single large buffer via `Socket.Send()` returns immediately.
After the send, the code then proceeds to call `Socket.Read()` in order
to obtain the
result of the operation. This works fine for small messages because the
Riak
server is able to accept and ACK the TCP packets and send a reply before
the `Socket.Receive()` request is issued. In the case of writing large
messages, `Socket.Receive()` is called too soon, before the bytes have
been fully sent and ACK'd, resulting in a SocketException (timeout).

Fix:

`Socket.Send()` will block when called if the bytes from a previously
issued
Send() call has yet to be fully sent. By looping through the message and
sending in small chunks, we are able to avoid the problem above.

Examples:

When sending a 3MB buffer all at once, `Socket.Send()` returns
immediatly and
a `Socket.Receive()` is issued before the data has completed
transmitting,
ultimately resulting in a timeout (default timeout = 2 seconds).
On the other hand, splitting this 3MB message into 16KB chunks,
each call to `Socket.Send()` waits for the previous call to
complete. From this, when the `Socket.Receive()` command is issued,
we only have to wait until the last 16KB chunk to complete, because
we can safely assume all previous chunks have been transmitted.
Unless the network link is very slow, the final 16KB chunk will complete
and the response sent within the 2 second timeout receive window.