If the client doesn't provide a class loader, let's infer one using [Types.getDefaultClassLoader()](http://dev.grouplens.org/grapht/apidocs/org/grouplens/grapht/util/Types.html#getDefaultClassLoader%28%29) from Grapht.

Let's do this in a delegating constructor without the `loader` parameter, and not allow `loader` to be null.