`if_else` should take broadcastable things, much like np.where does. Perhaps if_else should just be DelayFunction version of np.where