Reductions are now really scheduled as-inline-as-possible by default.

This means that:
f(x, y) = sum(...);
f.vectorize(x, 4);

Now actually vectorizes the computation of the sum. Previously it did not.

Required coming up with vectorization rules for For and Allocate nodes.
Add NULL device protection to free and validate routines for CUDA
and OpenCL backends to prevent errors with gpu_debug targets when
freeing a buffer_t with no device pointer allocated.
Merge remote-tracking branch 'origin/master' into ptx_math