feat(config): allow preprocessors to be configurable

- backwards compatible with previous preprocessor configuration
- first step towards resolving #383