* Remove unneeded begin/end when the loop is a do/while * Dangling else check passes through statement attributes (bug fix) * Dangling else check passes through most control flow structures to reduce unneeded begin/end * Add test case and update changelog --------- Co-authored-by: qcorradi <q.corradi22@imperial.ac.uk> Co-authored-by: Zachary Snow <zach@zachjs.com>