Reworked 2i query at the User API level.

The FetchIndex code was broken in a couple places, and once I started
trying to fix it I just felt maybe there was a different approach.

This solution violates DRY in a couple places because of #@%($
type erasure, but in the end I think it provides a much better
user experience as they don't have to much with generics and play
the "what type does this return" game. by returning concrete types
for everything.

Basic ITests work but this more tests are coming. WIP commit.
More tests.

Unit tests to make sure the core operation is constructed correctly,
and ITests to make sure match and range conversions are working.
Uncommented 2i flag.

Oops.
Adds direct support for BigInteger to RiakIndexes.

Since I was working with this code, it was an easy addition to provide
BigInteger support.

This commit adds BigInteger support to the @RiakIndex annotation and
to the user and core API.

Resolves #402
Added timeout to Core 2i op and user api.

Resolves #405
Merge pull request #404 from basho/gh403-fix-fetchindex

Gh403 fix fetchindex