fix(engine): Properly end pruned execution after parallel gateway join

- use the ExecutionEntity end() instead of remove() function to clean pruned
  executions
- the end() function will correctly call the AtomicOperation ACTIVITY_END,
  which will trigger a database update for the endtime
- add test case and process from  https://app.camunda.com/jira/browse/CAM-1537
- set isEnded flag in ExectuinEntity deleteCascade() function to
  prevent an additional deletion attempt

Closes #CAM-1537