Terminate solves cleanly based on Postprocessor values

This implements the change proposed in #3735. The ```UserObject``` to trigger the termination based on ```Postprocessor``` values is part of the phase_field module.