query index works, large changes to storeobject

Starting to get my head wrapped around the whole Riak PB interface now.

I have modified StoreObject so it's signature is the following:

    func (c *Conn) StoreObject(bucket, key string, content *RpbContent) (*RpbPutResp, error)

RpbContent is another one of those things that open a lot of options up to the developer (indexes, links, etc.).

However!  It is a real pain to use these interfaces in such a raw fashion.  You get code that looks like the following (pulled from query_test.go):

    d1, err := json.Marshal(&Farm{Animal: "chicken"})
	if err != nil {
		t.Error(err.Error())
	}
	i1 := &RpbPair{
		Key:   []byte("animal_bin"),
		Value: []byte("chicken"),
	}
	c1 := &RpbContent{
		Value:       d1,
		ContentType: []byte("application/json"),
		Indexes: []*RpbPair{
			i1,
		},
	}
	if _, err := riak.StoreObject("farm", "chicken", c1); err != nil {
		t.Error(err.Error())
	}

See #13 for the new riak Marshal implementation which makes the above code unnecessary.

This pull request works (the 2i Index search is now functional), but it did require the StoreObject parameter change.  That will change one more time if the other pull request is acceptable.