Introduce specialized null component exception
Improve injection point toString methods

This tries to make the injection point toString methods map more directly to Java source.
Provide more descriptive injection exceptions
Add missing license header
Add logging to rule-based bind function
Improve injection failure error reporting
Add accessor methods to DAGNodeBuilder
Add tests for DAG node builder accessors
Add class loader utility tests
Improve class proxy test level

- Add tests for equality
- Use ClassLoaders.inferDefault to find class loader
Merge branch 'feature/elehack-error-reporting'

Conflicts:
	src/main/java/org/grouplens/grapht/InjectionException.java
	src/main/java/org/grouplens/grapht/reflect/internal/InjectionProviderImpl.java
Use maps instead of ProviderSource

This replaces the custom ProviderSource type with a Map<Desire,Provider<?>>, to reduce unneeded custom types and make the satisfaction interface more straightforward (less implied inversion of control).
Remove now-defunct provider source classes
Drop wildcard from Satisfaction.getDesires()

I like to avoid wildcards in returns when I can, the wildcard in Satisfaction.getDesires() wasn't gaining us aything.