Initial cleanup of different linkage options in runtime
Further categorization of runtime symbols into internal and external
Avoid name conflicts between cuda and opencl.

Also pulled some common extern definitions out.
halide_runtime_internal -> Halide::Runtime::Internal
Merge branch 'master' into runtime_linkage_cleanup

Conflicts:
	src/runtime/cache.cpp
Fix linkage and naming for noop_printf
Merge pull request #411 from halide/runtime_linkage_cleanup

Runtime linkage cleanup