Fixes issue #181.

This commit changes preprocessors and postprocessors to have keyword
arguments instead of positional arguments. It also makes them modify
their arguments in-place, so we no longer need the NO_CHANGE sentinel
object.