Use the shared library for LLVM, if defined
with 'make USE_LLVM_SHARED_LIB=1'.

Using a shared library avoids a problem with LLVM's command
line parameters when loading an OpenCL implementation (at
least pocl) that also links in LLVM. Otherwise we get
assertion crashes like this:

... /llvm-3.5-svn/include/llvm/Support/CommandLine.h:682:
void llvm::cl::parser<llvm::ScheduleDAGInstrs
*(*)(llvm::MachineSchedContext *)>::addLiteralOption(const char *,
const DT &, const char *) [DataType = llvm::ScheduleDAGInstrs
*(*)(llvm::MachineSchedContext *), DT = llvm::ScheduleDAGInstrs
*(*)(llvm::MachineSchedContext *)]: Assertion findOption(Name) ==
Values.size() && "Option already exists!"' failed.
Aborted (core dumped)
Add Halide::set_custom_error_reporter()
Changed to USE_LLVM_SHARED_LIB to empty vs non-empty in line with other flags
Merge branch 'pocl-llvm-shared2'
CustomErrorReporter changes.
Merge pull request #573 from halide/explode

Add Halide::set_custom_error_reporter()
Merge branch 'master' into gpu_api_naming

Conflicts:
	apps/bilateral_grid/Makefile
	apps/interpolate/Makefile
	apps/local_laplacian/Makefile

Change file naming in local_laplacian app as it was confusing and
caused an erroneous change to a link line.

Remove egregious extern "C" around a header include.
Fix indentation errors.
Enable validating device pointers in backend specific wrapper
functions if compiling the debug runtime.
Fix extraneous WEK defs in a header that might be included into a user source file.

Fix declaratione rror with device wrapper accessor.