Extending Classical Planning with State Constraints: Heuristics and Search for Optimal Planning