added op for pooling

Basically adds pooling to the supported ops.
Don't put a default value to ws, to be more similar to max_pool_2d.

max_pool_2d implement a ignore_border parameter. its doc: boolean value. When True, (5,5) input with ds=(2,2) will generate a (2,2) output. (3,3) otherwise.

The current implementation allocate the output as if ignore_border=True. Do you know if cudnn support the other mode? If it don't or you don't know, can you just add a note section to tell that this always equivalent to the ignore_border=True of max_pool_2d. That way people converting there code to the new one will know about this.