Add nacl_io.cpp

Add nacl-specific version of halide_printf, to workaround variant
linker errors wrt stderr and friends under newlib (vs glibc)
If not compiling Halide, make buffer_t.h include stdint.h to get types used.
Added aarch64 support (for llvms compiled with that target enabled)
Merge branch 'master' of github.com:halide/Halide
Warn intead of error if you don't specify the bitwidth of the target arch.

This means that targets "arm" and "arm-android" will work for a while longer.
Added popcount() and count_{leading,trailing}_zeros() builtins.

These map to the corresponding LLVM IR intrinsics.

Also fixed a comment in the makefile.
Fix typos in comments and error messages.
Merge pull request #178 from mmp/popcount

Added popcount() and count_{leading,trailing}_zeros() builtins.
Fix Makefile

One rule, which could fire first, did not guarantee the creation of the BUILD_DIR.
This was what caused the ephemeral failures on drone.io.
Changed linkage types on symbols in posix_math.cpp to match posix_math.ll

llvm trunk was rewriting the definitions to declarations, which was causing
havoc later.

Also moved where re-marking linkage happens from optimize_modules to initial
module assembly.
Don't test against release-3.2 on os x. It doesn't work.
Merge branch 'master' of github.com:halide/Halide
Merge branch 'master' into skip_stages
Fix side effects test to have a dependence on all results from extern call

Otherwise llvm is clever and only does the last one.
Move all allocas to the top of the function

This means we don't need to do explicit stacksave/stackrestore. This makes
foo.compute_at(bar, x) faster, because it includes less stack-related junk.