Fix dialyzer warnings

Fix the following dialyzer warnings:
```
riakc_obj.erl:122: The call riakc_obj:build_client_object(Bucket::any(),Key::any(),'undefined') breaks the contract (bucket(),key(),value()) -> riakc_obj()
riakc_obj.erl:133: The pattern {'error', Reason} can never match the type #riakc_obj{bucket::binary(),key::'undefined' | binary(),contents::[],updatevalue::'undefined' | binary()}
```

Also, update the index_result spec type to reflect recent changes.