New pass to generate conversion operators out of constructors

This pass will generate implicit or explicit conversion operators out of constructors. As always see added test cases for examples.