Merge pull request #120 from steven-johnson/master

Add optional name arguments to the helpers in InlineReductions, so that ...
Fixed a bug in bounds inference.

We were lifting out Call exprs that were loads from Funcs. You can't move
these around, as their value might change (especially if they're a reduction).

Added an error that previously did not flag as an error, and a test that uses
this to do an argmax.
Allowed one-character Func names.
Typo in build_tests rule resulted in building tutorials when running tests.
Removed aggressive reuse of stack space.

It was buggy and unnecessary.
Avoid hard-coding libpng location.
make clean && make test_apps didn't build Halide.h
Slightly expand tutorial lesson_01
Tutorial ignores
Merge branch 'master' of github.com:halide/Halide
Fix warning in vector_math
Added comments on vectorization of transcendentals
Added a function to test if an expression is one-to-one. Will be useful for parallelizing reductions.
Fixed warning
More reliable timing for fast pow test
Even more consistent timings for fast pow test
Made timing more consistent in all tests by using clock instead of gettimeofday
Made it clearer that unsigned division method 0 is handled by power_of_two case
Made test_apps compile on os x with system c++
Fix find_inverse.c so that it generates a correct table.

For signed i32 division by 209, it was inaccurately accepting a multiply
by 1315205297 and a shift by 6 for that, even though the correct result
is 2630410593 and 7.   Now, it does 10x more random samples of values
and generates the right result.

(The checked in table is correct, though; presumably it was generated
with a different version of find_inverse.  Sending this patch in to
avoid trouble in the future.)