New infrastructure to support opt-out form, other changes

The big thing here is the new form processing object, which has been built to accommodate the opt out form. A few other changes are also included, such as changes to the HCL system, and a few other things.