Minor bounds inference interface cleanup.

Give BoundsInference an array of Functions instead of an array of
function names and an environment.
Remove potentially costly simplify from a debug statement.
Added some parens to conditions in assert statements.
Added experimental support for fusing two variables (the opposite of split).

Now you can say things like:

f.tile(x, y, xo, yo, yi, xi).fuse(xo, yo, tiles).parallel(tiles);

to operate over tiles in parallel in a single parallel for loop

or

f(c, x, y) = g(c, x, y) * 7;
f.fuse(c, x, i).vectorize(i, 8);

To vectorize across channels and x combined when color channels are innermost.
Merge branch 'master' of github.com:halide/Halide
Typo fix
Added performance test for new fusion operator.
More elaborate comments in the asm output via generating more basic blocks.

Mysteriously, this speeds up local laplacian very slightly, but no other
performance implications.
Fix a minor bug in bounds inference, added a test for fuse

Nested splits of coprime sizes were generating a reference to the max_min of
the inner dimension, which was not defined. Also, fuse was tracking the min
realization size incorrectly.
Assume less about the alignment of input and output buffers.
Fixed alignment of packed<->planar tested
Remove a small amount of code to make inline reductions work corretly
with implicit argument syntax. Add test cases.
Indentation typo fix.
Minor fixes to comments documenting halide_malloc and halide_free.
Corrected dependencies of make distrib, and removed it from the clean list.
Modify (most) app builds to use $BUILD_PREFIX

These previously would happily use even a very outdated
`bin/libHalide.a` if you more recently used a $BUILD_PREFIX,
leading to very confusing errors.
Made test scripts more robust, and also generate a distribution
Merge branch 'master' of github.com:halide/Halide
Made blur app robust to absence of openmp
Improved asm sniffing in simd_op_check so it doesn't miss vst2