Adding B+ tree instances to Indexlet class in IndexletManager
Small changes + lint removal + improving documentation.

Small changes include:
1. Removed STATUS_FETCH_MORE. This status will now be implicitly
indicated by the next key / next key length returned by a master.
2. ObjectFinder will not throw exception if an index(let) being
looked up doesn't exist.
Adding unit test for IndexletManager::compareKey().
Index insert and remove operations now use IndexRpcWrapper.

These operations previously used local objectFinder to lookup the
server id of the destination server, then used ServerIdRpcWrapper
to wrap the rpc. That would result in retries being serviced by
a level higher than the rpc wrapper, which is not ideal.
IndexRpcWrapper can handle retries directly.

Also made some minor improvements to related code.
In IndexletManager, adding key comparison function.

This function, called keyCompare(), can compare two keys lexicographically.
Also: renamed compareKey() to isKeyInRange(); other minor improvements.
IndexRpcWrapper now handles only a single RPC (and its retries).

If a client request cannot be completed in a single RPC
(if a server cannot fit all the response data in the rpc repsonse
or if another server has more data), then the client has to
explicitly initiate another RPC.

Also fixing some minor bugs and removing buffer copies.
Generalizing max rpc length in MasterService for all operations.
Added insert and lookup index entries in IndexletManager.
Small improvements to IndexletManager code.

1. Adding more corner case unit tests to IndexletManagerTest;
2. Minor code fixes;
3. Nits in naming and indentation.
Added functionality to remove index entry in IndexletManager.
Indexlet now stores key blob rather than string and sorts on hash.

Main changes include:
1. In indexlet, store const void* key and keyLength rather than
a key string.
2. Also store the primary key hash as a part of the index tree key
and sort based on that primary key hash if the key is equal.

Other changes include:
1. Simplify various functions in IndexletManager and tests in
IndexletManagerTest.
2. Added some more corner case tests.
3. Added comments for ashgup for some more changes that are required.
Object Finder updated to lookup indexes. Better indexlet allocation to avoid leak of information.
Update logcabin submodule to point to latest commit

This fixes gcc 4.7 builds for LogCabin.
Better inheritance for Indexlet class across TableManager, ObjectFinder and IndexletManager
Merge branch 'master' of ssh://fiz.stanford.edu/git/ramcloud
Renaming indexlet object in ObjectFinder
ObjectManager::removeObject() can now return keys of removed obj.

They keys will be returned in the same format as the keyAndValue
part of an Object, except there will be no value.
This is returned in caller provided buffer. If the caller doesn't
provide a buffer, this is not returned.

This functionality will be used by remove (and multi-remove) in
MasterService to get the keys of removed object and then request
removal of the corresponding index entries.
Unit tests + fixes for IndexRpcWrapper & related fixes in ObjectFinder.
Gracefully handle index rpcs when index doesn't exist.

We don't want to throw an exception for an index operation if
the index doesn't exist. Fixed how that's handled.
Lint removal in IndexRpcWrapper.