Although I don't insist on anything, there are some good reasons for my approach:
* It is similar to the numpy pattern, where you can write either `np.zeros(4)` or `np.zeros((4,))` for a 1D array, but you have to write `np.zeros((4,2))` for a 2D array. Allowing passing a scalar instead of a tuple makes it more convenient for common cases, although it complicates implementation
* This approach won't break backward compatibility (adding the `axes_pad_vert` argument in the middle would, adding it at the end wouldn't, but that would lack some sense)