arraypad fixes

Previously it was not possible to do the following:

    pad(array, 2, mode='constant', constant_values=1.1)
    pad(array, 2.0, mode='constant', constant_values=1.1)
    pad(array, np.array((2, 2)), mode='constant', constant_values=1.1)
    pad(array, np.array((2, 2)), mode='constant', constant_values=np.array((1.1, 1.1)))
    etc.
The original author of the function also used this function for normalizing `constant_values`, so it must also accept float values. I could rename the function if that makes you feel better?=