Raise maximum number of arguments to a Halide Func to six(6).

Add code to save and restore the stack pointer around on stack
allocations (alloca calls). This prevents excessive stack use, and
crashing due to running out of stack in certain cases.
include fix for llvm 3.2
Better error message on vectorizing across more than one variable.
Cleaned up unique function name test
Fixes for avx.

Turns out options.StackAlignmentOverride tells llvm what
alignment it can assume already, not what alignment you
would like.
Better abs for float and double on x86
Put the same conditional bracket around struct buffer_t that is used
in generated code so Halide.h can be include in in the same file as a
generated header.
Added a test to ensure operators on constants don't upgrade types unexpectedly
Merge branch 'master' of github.com:halide/Halide
Added friendlier error messages ...

... for leaving off arguments when compiling statically, and
vectorizing across multiple dimensions at once.
Add base_name helper
Fix "control reaches end of non-void function"
Add stream output for Scope symbol tables
Factor CodeGen::Closure into shared component

The new logic is a bit more generic, and lives under CodeGen_Internal.cpp,h
(It's now shared by the GPU backends.)
Merge branch 'master' of github.com:halide/Halide
Factor CodeGen_Posix memory allocation into helpers

This is important for overloading the allocation functionality
in more subtle ways for e.g. the GPU backends. It also paves 
the way for completely dropping the CodeGen_Posix class from 
the hierarchy, since these functions are ~all it does.
Give RVars more unique magic names to prevent name conflicts with pure vars.
Merge branch 'master' of github.com:halide/Halide
int -> size_t fixes build on linux