I'm working on altering some elements of the Arducopter code to add support for 4-servo, 90 degree CCPM and could use some help from developers with experience with the code base.
It seems that the only files that need changing are in AP_MotorsHeli (.cpp and the header file) but perhaps I'm wrong in that assumption. I've tried some preliminary changes but upon uploading it to the APM through the Arduino IDE I noticed no alteration in the behavior of the system.
I suppose the problem can be broken down into two parts: re-purposing one of the auxiliary channels (presumably either channel 6 or 7) to drive the fourth servo, and altering the CCPM to apply roll and pitch discretely to the two pairs of servos.
You can view the alterations I've made over at my Github repository. Please bear in mind that these changes don't preserve the regular 3-servo CCPM setup; I wasn't expecting to have this work integrated into the official release.