Write Vertex attributes and add plot function

Hello,  I'm putting that plot function in and writing vertex attributes, which I had forgotten.  I think the plot function is worth having, even if it won't work for people without graphviz installed.  If it's ever made flexible and robust, it's probably worth pulling out to a package of its own, where it can have graphviz as a dependency without burdening the main graph stuff.

I also have some work on random graphs, an erdos_renyi generator and a watts_strogatz generator, for a future pull request, maybe tomorrow.