Enable autowiring for Symfony via type hinting
This is a minor patch that adds type hinting to constructors and some other methods for enhanced security and enhanced compatibility with the Symfony4 autowiring features. See #282 for more details.
None of the methods where type hinting was added would have worked if the incorrect types were passed through, so this change is fully backwards compatible.