Make injections required. Add @Optional annotation.

# DO NOT MERGE

*For review only. Needs some tests.*

This changes all field and method injections to be required. An exception will be thrown if the ID cannot be found. Adding an @Optional annotation to fields or methods will omit this check.