Allow for merging different directory trees ("packages")

Each package can have its own set of preprocessors, in addition to
global preprocessors.