SpecialGraph class for custom dict-like data structure.

SpecialGraph and SpecialDiGraph allow ordered dicts or any other
dict-like objects to take the place of dicts in the base classes.
Examples include ordered nodes, ordered neighbors in adjlists.
Another nice possibility is a low memory graph class for cases
where edge attributes are not important.

Some basic tests are included, essentially making sure this
class still acts like a graph.  More doc_string tests show
the examples mentioned above.

Discussed in closed issue #439 (which came from trak 445) as
well as discussions on the networkx-discuss list.

This might be a jumping off point for creating an SQL-based
graph storage class too.