Port Hashrouting ICN13 code to NetworkX 1.9

NetworkX 1.9 changes the return type of the
connected_component_subgraphs function from list to generator.
This commit ensures that the code to reproduce the hashrouting
results works with NetworkX 1.9
Minor corrections to some docstrings
Add Segmented LRU (SLRU) cache policy implementation

This policy divides the cache space into a number of segments of
equal size each operating according to an LRU policy. When a new
item isinserted to the cache, it is placed on the top entry of the
bottom segment. Each subsequent hit promotes the item to the top
entry of the segment above. When an item is evicted from a segment,
it is demoted to the top entry of the segment immediately below.
An item is evicted from the cache when it is evicted from the
bottom segment.
Add **kwargs to all cache policies and strategies
Rename RandCache -> RandEvictionCache

This would avoid confusion with rand insertion cache
Add tree data structure

Add a Tree class implementing a tree data structure. It will be used
to store experiment parameters and results in resultsets.
Internally it is implemented as nested dictionaries but offers more
sophisticated methods for searching and filtering. This would
simplify and make more flexible plotting and results analysis.
Add AnyValue class

Add class whose instances are always equal to any other object
they are compared to. This can be useful for experiment parameters
in which a particular metric does not depend on a specific
parameter.
Port results collectors to tree data structure

Make results collectors return results as trees as opposed to
nested dictionaries.
Fix minor bug in ResultSet

Fix a bug introduced by 5066ee674942c5a70efb1926bac272372a78e80c