Rectangular Pooling

Implemented rectangular pooling, allowing pooling with different kernel_size, stride and pad along each axis.