Better error handling in the TestHarness 

closes #3329

Missing required parameters will now cause the TestHarness to exit with a non-zero error code.
Although we aren't using this yet you can get any number between 0-7 now in the TestHarness representing a combination of different error codes.  Maybe that phantom python guy will flesh this out into a whole system some day