Configurable Firmata for low-end Arduino models

Current Firmata firmware exceeds dynamic memory capabilities in low-end Ardunio model (in my case, ATmega168). Also I'm not using all the power of the Firmata firmware (in my case, I don't need I2C). So, I think a compromise solution can be to deactivate some features of the firmware via macro definitions, in order to hava a recent firmware for old model at the expense of lower capabilities that you can choose.

The numbers of this sketch are:
I2C + Servo: 11844B of program storage. 862B of dynamic memory. (not working on my low-end device)
I2C: 10340B of program storage. 826B of dynamic memory. (not working on my low-end device)
Servo: 10288B of program storage. 662B of dynamic memory. (working fine)
None: 8804B of program storage. 626B of dynamic memory. (working fine)