Renamed Vertex and Edge to VertexNode and EdgeNode

This makes the class more consistent with other container classes.
Added const graph traits for boost
Added BGL graph property wrappers
ASSERT_not_null does not return a value

Nobody was using it in this way, and it only resulted in compiler
warnings that the statement (after expanding to just the pointer expression)
had no effect.
Fixed warnings by removing unused variable in this demo
Changed names for Graph insert and erase methods

Overloaded Graph::insert was split into
  * Graph::insertVertex
  * Graph::insertEdge

Overloaded Graph::erase was split into
  * Graph::eraseVertex
  * Graph::eraseEdge

This change makes the interface more readable and will make
it easier for subclasses that want to override vertex operations
but not edge operations, or vice versa.
Added nInEdges() and nOutEdges() to Graph<>::VertexNode
Implemented Graph constructors and assignment
Container tests use ASSERT_always_* macros

This prevents the tests from being disabled when compiled
with -DNDEBUG
Fixed doxygen warnings