Add support for "required" dependencies via setter injection
Currently all dependencies injected through autowired setter injection (see #319) are optional.
This should be configurable through a "@required" annotation on the inject* method. If an inject method is marked as required, the object builder would throw an exception if the dependencies can't be resolved. Such an exception would not be thrown for optional dependencies.