Add error checking for passing too many arguments to a Halide
function. Caused a segmentation violation previously.

Add support to the test infrastructure for error message tests. Allows
writing tests that should result in a compile time failure and
verifying one does occur as opposed to the code being accepted or
crashing.