Add hook_civicrm_preProcess function.

This seems to be a generically useful spot to intercept the form object and
change things before the form is processed. Specifically, we need this hook
for integrating the Event Cart with the CiviDiscount extension.
This looks a bit different than the other invoke() statements -- e.g. they tend to use self::$_nullObject for non-applicable params. Any particular reason for using $formName?