Avoid 64-bit division on 32-bit targets.
Halide routines now return an exit status.

0 == success. -1 == an assertion failed (and halide_error was called).

This allows for correct allocation cleanup on assertion fails inside nested
halide routines (e.g. parallel for loops, or the upcoming extern stages).
Can retrieve the internal parameter from an ImageParam.
EarlyFree no longer injects multiple frees of the same buffer

Was happening when the last containing statement occurred multiple times,
e.g. due to unrolling.
Added ability to call out to external stages.

This lets you pass buffer_t's representing Halide Funcs to external code,
in order to evaluate some Halide Func. The syntax for it is currently minimal.

Extern stages must conform to the same bounds inference query interface as
halide routines. test/correctness/extern_stage.cpp provides an example. They
should return an int, which halide will check. Zero indicates success.
Non-zero values cause the containing function to call halide_error and bail
out.
Moved jit_finalize back to where it was

Needs to be after JITModuleHolder construction for ptx apparently.
Merge branch 'master' of github.com:halide/Halide

Conflicts:
	src/JITCompiledModule.cpp
Fix storage folding to fold across multiple dimensions.

Also make it avoid buffers that are treated specially.
Added some more tests for extern stages ...

... and fixed bugs they uncovered.

- The last function in the pipeline as an extern stage wasn't working.
- Params couldn't be turned into ExternFuncArgument cleanly.
Remove call to finalizeMemory for the benefit of llvm 3.3

It wasn't helping anyway.