Add analysis function apply_ufunc

Added a new function apply_ufunc, which applies numpy universal functions to cubes. Calls iris.analysis.maths._binary_op_common or iris.analysis.maths._math_op_common.