FAPE: a Constraint-based Planner for Generative and Hierarchical Temporal Planning