Flatten Nested Iterables

The Iterables helper class now has the ability to
turn an Iterable<? extends Iterable<E>> to an
Iterable<E>
Graph Interface Docs And Clean-up

Graph and SimpleGraph were in need of JavaDocs; this
has been resolved.

The getEdge(V,V) method has been removed from Graph as
this is really only a SimpleGraph method.
Graph Builder Refactoring

Much of the functionality within graph builders
is usable by other builders within other Graph types.

Abstract classes for Builder and Weighted Builder have
been created.

Edge storage and retreival logic has been moved to an
EdgeStore class. EdgeStores determine how duplicates are
handled.