Rectangular pooling

Implemented rectangular pooling, allowing pooling with different kernel_size, stride and pad along each axis.

I will add tests soon and update.
The conditions to decide which values of kernel_size, pad or stride are used should be consistent.