This commit replaces all uses of boost::unordered_multimap with
std::unordered_multimap. This involves several changes sated as
follows.

1. At this time, we are using gcc-4.4.7 to compile RAMCloud,
which doesn't have 'emplace' as a member function in
std::unordred_multimap (gcc 4.6.0 starts to supports 'emplace').
Therefore, we use 'insert' to implement add item operation, which
is almost the same as 'emplace'. The only difference is that
'insert' performs a move insertion, while 'emplace' advoids that
move operation.

2. In gcc-4.4.7, there is no default hash function for std::pair.
Therefore, if we want to use std::pair<tableID, keyID> (key of
IndexletMap) as a key, we have to implement a user-defined hash
function.
Fix conflicts
fix conflict in src/IndexletManager.cc
Added mechanism for mocking the clock rate in Cycles.cc.
Added TimeTrace class: records events and times for performance analysis.
Added new GET_TIME_TRACE and LOG_TIME_TRACE server control commands.
Added new RPC RamCloud::indexServerControl (for directing a server
control RPC at the server storing a particular index).
Merge branch 'master' of ssh://fiz.stanford.edu/git/ramcloud
Added new convenience method Buffer::appendCopy, improved docs for
some other methods.
Added a few more performance tests (Buffer operations, memcpy).
Update recovery metrics: GET_TABLET_MAP -> GET_TABLE_CONFIG.

In e65a832 the RPC GET_TABLET_MAP was changed to GET_TABLE_CONFIG.  This patch
updates recoverymetrics.py to use the new identifier.
Added more Perf tests for memcpy.
Update logcabin to latest commit

On Feb 27, RAMCloud commit 0f6eaf42 reset the submodule unintentionally
to an old version.
Table Manager now drops all existing indexes and related data while
dropping a table. Added corresponding unit tests.
Merge branch 'master' of ssh://fiz.stanford.edu/git/ramcloud
Changed index structures in table manager. Handled some TODOs.
Add '--allowLocalBackup' flag to masters.

Masters can now be started with the '--allowLocalBackup' command-line flag to
allow masters to use backups located on the same machine.  Using this flag
RAMCloud can be started and used on a single machine with a replication factor
of 1.  **Note that this is not the recommended configuration of RAMCloud.**
1) Storing primary key of tree nodes as uint64_t as opposed
   to converting it into a C++ string and storing the corresponding
   bytes. This is very inefficient to do and saves us on the
   order of 1 us for every read or write of a tree node.

2) Fixed a bug where the destructor of the tree would attempt
   to delete all nodes in the tree atomically by writing tombstones
   for all those nodes in 1 segment. This will obviously fail as
   the tree grows. So, the fix is not to explicitly write tombstones
   for the nodes and instead expect higher level code to take care
   of this (similar to what is done in case of dropTable on the server
   side)

3) Removed a lot of unnecessary/unused/commented out code

4) A few minor cosmetic changes
Using appendCopy() instead of append() in LookupIndexRpc
and IndexedReadRpc constructors to avoid creating too
many chunks. The idea is that it is cheaper to do the
memcpy on these few bytes than the NIC assembling
various chunks that are discontiguous in memory.
Changed sessionCache in TransportManager from an ordered map
to an unordered map. The former is an rb tree while the latter
is a hash table. The difference however may not be significant
unless there are too many entries in the map