Land dependency injection support into master

@creynders Sorry this took so long!  Just had a design review with the team, and the DI support was unanimously approved.  Future PRs can be submitted directly to the master branch from this point on.  Thanks again for your contributions to this project!  Looking forward to more collaboration on the DI front.