Move matrix, numeric and enum properties to Description
Add wrapper class InputOutput for in place inputs
Check matrix inputs
Use most general data type for destination inputs
Use most general data type for destination inputs in cv::core