Function Overloading & Unification

This PR provides some datashape syntax extensions (traits, ellipsis, function signatures). It also provides datashape unification, promotion, coercion, and function overloading.