Tweak name of cached graph class: CachedEdgeList.
Re-implement CachedEdgeList as subtype of IndexedEdgeList from master.
CachedEdgeList should not duplicate IndexedEdgeList functionality.
Warning about access to CachedEdgeList._graph.
Ensure that neighbours and incident edges are random-access ranges.
Use writeable vertexCount @property to replace addVertices.
graphtest benchmarks all available graph types.
Ensure function attributes are as strict as possible.

  * Add @safe, const, nothrow and pure where possible

  * List attributes in alphabetical order
Manually wrap public methods of CachedEdgeList._graph
and make _graph private.

This is a stopgap solution to the problems caused by
http://d.puremagic.com/issues/show_bug.cgi?id=10996

It's preferable to the previous solution of making
_graph public, because it restricts access in the way
that is intended by the subtyping design.

It may add a small amount of latency to the function
calls, but not enough to worry about, and it ensures
that the public API of CachedEdgeList will remain
consistent and safe both now and after Issue #10996
is fixed.