Only set NULL data layout for llvm >= 3.5
Traverse Expr ExternArguments in IRVisitor
Remove IRDeepVisitor, visit_function helpers

These were actually incomplete and a poor fit for the initial
FindCalls implementation, since extracting all ExternArgument
functions correctly required a ton of duplication of logic 
otherwise isolated within Lower's `populate_environment`.
Move call graph computation into FindCalls helpers

I've rolled back to just using the existing logic, exactly as-is,
from Lower's `populate_environment`, but moved it inside a new 
FindCalls utility module.
Add FindCalls to CMakeLists
Move using declarations inside of Halide namespaces.
Avoid generating vshiftn for newer llvms
Merge branch 'master' of github.com:halide/Halide
More arm intrinsic fixes
Merge pull request #244 from halide/master

test_gpu branch for better GPU test coverage, better naming.