Add PassManagerBuilder

This pull request should not introduce backwards incompatibility.