generalize flipud/fliplr to complex numbers
generalize from_diag(scalar) to complex, change from_diag(scalar, scalar) to generate an expression and specialize value_type for that case