Designing Resilient Agents Using Grammatical Evolution, Behavior Trees, and Finite Linear Temporal Logic