This removes the duplication of the kind string and cleans up things for resource creation.
Since the pgraph graph can store arbitrary pointers, we don't need a special method to create the vertices or edges as long as they implement the String() string method. This cleans up the library and some of the examples which I let rot previously.
This is the mechanical port of the remaining bits. Next to clean it up a bit.