Add Semantic checks for OpenMP 4.5 - 2.7.4 Workshare Construct
- The structured block in a worksahre construct may consist of only scalar or array assignments, forall or where statements, forall, where, atomic, critical or parallel constructs
- All array assignments, scalar assignments, and masked array assignments must be intrinsic assignments.
- The construct must not contain any user defined function calls unless the function is ELEMENTAL.
Resolve related test cases marked XFAIL
clang-format: please reformat the code