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.
Added '--disjunct' option to disable collocate entities on a server into scripts/{cluster.py, clusterperf.py}
Merge branch 'master' of ssh://fiz.stanford.edu/git/ramcloud
Basic secondary indexing now seems to work end-to-end.
(Benchmarking has not yet been done.)

This commit adds more tests:
1. In IndexletManagerTest for some corner cases.
2. In MasterServiceTest to check that it requests insertion/
   removal of correct index entries on object write / remove.
3. End to end test in RamCloudTest that tests writing indexed
   objects, looking up / reding them, removing them, and attempting
   to lookup / read them again.

This commit also fixes some bugs:
1. IndexletManager now includes constructor/destructor for KeyAndHash
   structure used as key in indexlet tree key. This ensures that
   keys sent over rpcs are copied over safely. This code was
   contributed by Ashish Gupta.
2. Waiting mechanism improved for rpcs to Index servers.
3. Other small bug fixes (missing break statements, incorrect for
   loop conditions, amongst others) + adding debug msgs + lint removal.
Write & remove object in ObjectManager now return ref to removed obj.

The writeObject() and removeObject() functions in ObjectManager
now return a pointer to the buffer in log for the object being
overwritten or removed, if any.

This will be used by indexed writes and indexed removes to get data
about (old) index entries to remove.

Note that a similar functionality already existed in removeObject().
This new mechanism is much simpler and (probably) more efficient.
Indexing code now uses new writeObject, removeObject (prev commit).
This makes it cleaner and possibly more efficient.

Also fixing a bug so that an rpc to insert / remove an index entry
gets sent only if that entry is not null.
On remove/write, return to client before sending index remove rpcs.

Also cleaning up related code.
Removing completed/redudant todo messages left over.