Preprocessing extension statements and exposing them to the world

Addresses issue #30
Merge branches 'strutz', 'array-subexp', 'ackrc' and 'preprocessor-updates' into bleeding-edge