Minor simplification to eigenvector centrality code
Add CacheManager to handle all our caching needs
Integrate CacheManager into existing caches
Move eigenvector centrality calculation out of GraphContext
Move weightFunction into GraphContext
Add weighted closeness centrality

See #116
Add benchmark for weighted closeness centrality

See #116
Add plumbing for betweenness centrality

    There are some major oddities with Jung's weighted betweenness centrality. For example, in the network 0--1--2--3--0,
    with 3--0 having weight 10, it gives [0 1.5 1.25 0]. I don't understand what betweenness centrality > 1 is or
    how it could be asymmetric. So for now, I'm going to leave the plumbing in place, but not expose the functionality
    till we understand it.

See #116