SimpleGraph: Do not extend paths. Closes #8.

* SimpleGraph/SimpleGraph.cpp (handleEstimate): Do not extend paths.
Extending paths can cause misassemblies when the de Bruijn graph is
incomplete. This feature was originally introduced in e8fd7678.
PathOverlap: Print the name of the file being read

* PathOverlap/PathOverlap.cpp (readPaths, main):
Print the name of the file being read.
Replace Estimate with a std::pair.

* Common/Estimate.h (Estimate): Remove this struct. Use a typedef.
* Overlap/Overlap.cpp: Update.
* ParseAligns/ParseAligns.cpp: Ditto.
* SimpleGraph/SimpleGraph.cpp: Ditto.
New vertex_name and edge_name property maps

* Common/ContigID.h (ContigID::s_dict): Rename to g_contigNames.
* Common/ContigID.cpp: Update.
* Common/ContigNode.h (get vertex_name, get edge_name): New function.
(VertexName, EdgeName): New struct.
* Common/Dictionary.h (get): New function.
* Common/ContigPath.h (operator<<): Use it.
* Common/ContigProperties.h (get edge_bundle): Ditto.
* Graph/Properties.h (edge_name): New property.
Use the vertex_name and edge_name property maps

* Common/ContigNode.h (operator<<): Remove this function.
* DistanceEst/DistanceEst.cpp: Use the vertex_name and edge_name
property maps rather than the magic ContigNode::operator<<.
* Graph/AdjIO.h: Ditto.
* Graph/DistIO.h: Ditto.
* Graph/DotIO.h: Ditto.
* Graph/PopBubbles.h: Ditto.
* Map/overlap.cc: Ditto.
* MergePaths/MergeContigs.cpp: Ditto.
* MergePaths/MergePaths.cpp: Ditto.
* MergePaths/PathConsensus.cpp: Ditto.
* Overlap/Overlap.cpp: Ditto.
* ParseAligns/ParseAligns.cpp: Ditto.
* PathOverlap/PathOverlap.cpp: Ditto.
* PopBubbles/PopBubbles.cpp: Ditto.
* Scaffold/drawgraph.cc: Ditto.
* Scaffold/scaffold.cc: Ditto.
* SimpleGraph/SimpleGraph.cpp: Ditto.
New vertex_contig_name property map

* Common/ContigID.h (operator<<, str): Remove this function.
* Common/ContigNode.h (get vertex_contig_name): New function.
Use it rather than ContigID::operator<<.
* FilterGraph/FilterGraph.cpp: Use it.
* Graph/AdjIO.h: Ditto.
* Graph/AsqgIO.h: Ditto.
* Graph/DistIO.h: Ditto.
* Graph/Properties.h: Ditto.
* Graph/SAMIO.h: Ditto.
* MergePaths/MergeContigs.cpp: Ditto.
* MergePaths/MergePaths.cpp: Ditto.
* MergePaths/PathConsensus.cpp: Ditto.
* Overlap/Overlap.cpp: Ditto.
* PathOverlap/PathOverlap.cpp: Ditto.
* PopBubbles/PopBubbles.cpp: Ditto.
* Scaffold/junction.cc: Ditto.
* Scaffold/scaffold.cc: Ditto.
* SimpleGraph/SimpleGraph.cpp: Ditto.
ContigID: Remove the static forwarding functions

* Common/ContigID.h (empty, lock, unlock, count, insert, put):
Remove this function.
* Common/ContigNode.h: Update.
* Common/Dictionary.h: Ditto.
* AdjList/AdjList.cpp: Ditto.
* DistanceEst/DistanceEst.cpp: Ditto.
* Graph/AdjIO.h: Ditto.
* Graph/DotIO.h: Ditto.
* Graph/gc.cc: Ditto.
* Graph/todot.cc: Ditto.
* Map/overlap.cc: Ditto.
* MergePaths/MergeContigs.cpp: Ditto.
* MergePaths/MergePaths.cpp: Ditto.
* MergePaths/PathConsensus.cpp: Ditto.
* PathOverlap/PathOverlap.cpp: Ditto.
* PopBubbles/PopBubbles.cpp: Ditto.
* Scaffold/drawgraph.cc: Ditto.
* Scaffold/junction.cc: Ditto.
* Scaffold/scaffold.cc: Ditto.
Dictionary: Rename key to name.

* Common/Dictionary.h (key): Rename key to name.
* Common/ContigID.h: Update.
* Common/ContigNode.h: Ditto.
Use put rather than Dictionary::insert.

* DistanceEst/DistanceEst.cpp (readContigLengths): Use put.
* MergePaths/MergeContigs.cpp (outputGraph, main): Ditto.
* MergePaths/MergePaths.cpp (readContigLengths): Ditto.
* PathOverlap/PathOverlap.cpp (addPathOverlapEdges): Ditto.
* Graph/ContigGraphAlgorithms.h (merge): Return the vertex descriptor.
Replace ContigID::create with createContigName

* Common/ContigID.h (setNextContigName, createContigName):
New function.
(ContigID::setNextContigID, ContigID::create): Remove this function.
* Common/ContigID.cpp (ContigID::s_nextID):
Rename to g_nextContigName.
* FilterGraph/FilterGraph.cpp (main): Update.
* MergePaths/MergePaths.cpp (outputSortedPaths): Ditto.
* MergePaths/PathConsensus.cpp (outputNewContig): Ditto.
* Overlap/Overlap.cpp (newContig): Ditto.
* PathOverlap/PathOverlap.cpp (assembleOverlappingPaths): Ditto.
* PopBubbles/PopBubbles.cpp (main): Ditto.
* Scaffold/junction.cc (extendJunction): Ditto.
* Scaffold/scaffold.cc (scaffold): Ditto.
Remove the constructor ContigID(string)

* Common/ContigID.h (constructor string, operator>>):
Remove this function.
* Common/ContigNode.h: Update.
* Common/ContigPath.h (markSeenInPath): Ditto.
* Common/Estimate.h (operator>>): Ditto.
* DistanceEst/DistanceEst.cpp (writeEstimates): Ditto.
* Graph/AdjIO.h (read_adj): Ditto.
* Graph/AsqgIO.h (read_asqg): Ditto.
* MergePaths/MergeContigs.cpp (markRemovedContigs): Ditto.
* MergePaths/MergePaths.cpp (readPaths): Ditto.
* MergePaths/PathConsensus.cpp (main): Ditto.
* PopBubbles/PopBubbles.cpp (main): Ditto.
ContigNode: New function, find_vertex

* Common/ContigNode.h (constructor string, operator>>):
Remove this function.
(find_vertex): New function.
* Graph/DirectedGraph.h (find_vertex): Ditto.
* Common/ContigPath.h (operator>>): Use it.
* Common/Estimate.h (operator>>): Ditto.
* DistanceEst/DistanceEst.cpp (writeEstimates): Ditto.
* Graph/AdjIO.h (readDistEdges, read_adj): Ditto.
* Graph/AsqgIO.h (read_asqg): Ditto.
* Graph/DotIO.h (read_dot_id, read_dot): Ditto.
* Map/overlap.cc (addSuffixOverlaps, addPrefixOverlaps): Ditto.
* MergePaths/MergeContigs.cpp (outputGraph): Ditto.
* ParseAligns/ParseAligns.cpp (doReadIntegrity): Ditto.
* PathOverlap/PathOverlap.cpp (readPaths): Ditto.
Tidy ContigID

* Common/ContigID.h: Tidy.
Call g_contigNames.unlock and g_contigNames.lock

* MergePaths/PathConsensus.cpp (main):
Call g_contigNames.unlock() and g_contigNames.lock() as necessary.
* Overlap/Overlap.cpp (main): Ditto.
* PathOverlap/PathOverlap.cpp (assembleOverlappingPaths): Ditto.
* PopBubbles/PopBubbles.cpp (main): Ditto.
Clean implementation of ContigNode.

* Common/ContigNode.h (ContigNode): Clean implementation.
Do not use a union.
Replace the function index(ContigNode) with get

* Common/ContigNode.h (index): Remove this function.
* Graph/DirectedGraph.h: Update.
* Graph/ContigGraph.h (get vertex_removed): Ditto.
ContigNode: Replace flip with operator^=

* Common/ContigNode.h (flip): Remove this function.
(operator^=): New function.
* Common/ContigPath.h (reverseComplement): Update.
* SimpleGraph/SimpleGraph.cpp (worker): Ditto.
ContigNode::operator^=: Assert !ambiguous

* Common/ContigNode.h (operator^=):
Assert that this ContigNode is not ambiguous, like operator^.
* Common/ContigPath.h (reverseComplement):
Do not flip the ambiguous nodes.
New vertex property, vertex_complement

* Graph/Properties.h (vertex_complement): New property.
* Common/ContigNode.h (operator~): Remove this function.
(get vertex_complement): New function.
* Common/Kmer.h (operator~): Remove this function.
* Assembly/SequenceCollection.h (get vertex_complement): New function.
* AdjList/AdjList.cpp: Use it.
* FilterGraph/FilterGraph.cpp: Ditto.
* Graph/ContigGraph.h: Ditto.
* Graph/ContigGraphAlgorithms.h: Ditto.
* Graph/PopBubbles.h: Ditto.
* Map/overlap.cc: Ditto.
* MergePaths/PathConsensus.cpp: Ditto.
* Overlap/Overlap.cpp: Ditto.
* PathOverlap/PathOverlap.cpp: Ditto.
* PopBubbles/PopBubbles.cpp: Ditto.
* Scaffold/junction.cc: Ditto.
* Scaffold/scaffold.cc: Ditto.
ContigNode: New function, contigIndex

* Common/ContigNode.h (constructor ContigID): Rename to contigIndex.
(ContigIndexMap): New property map class.
* Common/ContigID.h (ContigIDIndexMap): Remove this class.
* Common/Iterator.h (CountingOutputIterator): New class.
* Common/ContigPath.h: Update.
* FilterGraph/FilterGraph.cpp: Ditto.
* Graph/Assemble.h: Ditto.
* Graph/ContigGraphAlgorithms.h: Ditto.
* MergePaths/MergePaths.cpp: Ditto.
* MergePaths/PathConsensus.cpp: Ditto.
* PathOverlap/PathOverlap.cpp: Ditto.
* PopBubbles/PopBubbles.cpp: Ditto.
* Scaffold/junction.cc: Ditto.
* Scaffold/scaffold.cc: Ditto.
* SimpleGraph/SimpleGraph.cpp: Ditto.