Extract an Instantiator helper class to instantiate graphs

- Create Instantiator helper class, encapsulating logic for turning graphs into providers and instances.
- Make DefaultInjector use Instantiator.
Add Instantiator interface
Make Satisfaction return List<Desire>
Make InjectionException checked
Delete InstantiatorSource in favor of Map
Rename Instaniator method
Add missing license headers
Write tests for AbstractChain
Add tests for Types provider type methods
Update the documentation for InjectionException
Clear up many deprecation warnings
Fix JavaDoc errors
Push down ConstructionException
Refactor SolverException -> ResolutionException

- Introduce new ResolutionException
- Deprecate SolverException (as superclass of ResolutionException)
- Make ResolutionException extend InjectionException
Clean up ConstructionException constructors
Refactor null component exception

- Rename to NullDependencyException
- Clean up relationship to parent classes
Fix ConstructionException constructors
Add missing license headers
Check license headers earlier in the build process
Run Maven in batch mode