Working on overload resolution.

- Add missing file.
- Add generic algorithms for partial ordering
- Move conversion code into conversion module
- Make convert() emit diagnostics