Add AlternativeSubformsForm, and some other minor refactorings and cleanups