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. 
I would prefer the test of this thing to be in MOOSE - and for it to NOT use LU so that it can run in parallel.