doubly-index edges

Earlier implementations of the data model included the edges implicitly by
describing the upstream (prev) and downstream (next) links in the sequence
nodes themselves. This would complicate the annotation of edges within the data
interchange format itself, which is an important feature of overlap graph (see
GFA).

To rectify this, this commit simultaneously serializes edges as unique
first-order objects and describes the upstream and downstream links in the node
objects themselves. This is potentially inefficient, so perhaps future versions
of the serialization should remove the linking information from the nodes. This
would be trivial, and could be problematic under some use-cases.