added 2 ops: DownsampleFactorMax and DownsampleFactorMaxGrad on the new gpu back end

You kernel and C code below will completely break on data that is not 'float32'.  Either fix that or add a check in the make_node().