Java 8 library for working with strongly typed graph data in a generic way