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.