Add function to compute overlay betweenness centrality

Add a util function calculating the betweenness centrality of a node
considering only the shortest paths between a specified set of
origin and destination nodes.
Improve key-value cache implementation

Improve key-value cache implementation by refactoring it, adding a
*remove* method and improving documentation
Refactor and improve test cases of random insert cache
Add TTL cache implementation

Add a function modifying a cache object into a TTL cache, in which
each inserted item is also labeled with a TTL, which, when expired,
triggers the eviction of the item from the cache.
Major refactoring

This commit adds a major refactoring of the code to improve Icarus'
maintainability in the long run.

The main changes to the code are:

* Decoupling of topology creation, cache placement and content
   placement
* Renaming of register decorators
* Addition of new methods and change of signature of existing
   methods to improve maintainability
Clarify ProbCache documentation

This commit clarifies the documentation of the ProbCache strategy
and fixes some mistakes in comments around the code.