Numerous improvements to graph implementation to improve usability and
extensibility

Signed-off-by: Nathan T Freeman <nathan.freeman@redpilldevelopment.com>