Add Atomic statement form.  All properties go through unchanged.

graphOf function regards an input program containing an Atomic as a
failure ("original code" shouldn't contain Atomics). Alternatively, if
we did handle them, graphOf would ignore the atomic-ness.

This is not quite correct, but it's close. If the requirement to be
atomic makes a difference, there must be a race between some of the
actions generated by the atomic statement and some other action in the
graph. This suggests (but doesn't require) that there is a race
between the atomic action and that other action.

The exception is if the atomic action changes a variable's value only
to change it back again. Then, the atomic-ness makes a difference, and
the graph formalism we're using can't see it.