More changes to constructor matching to properly account for inferred types, resolves #471