Add ExpressionBuilder to phase field module

This includes a unit test (which should probably be more comprehensive). Closes #3927 
Further enhancements will be separate PRs.