The interaction between various clauses on 'routine' was not implemented
QUITE right, as I discovered when looking into the implementation of the
ACC dialect. This patch fixes it up so that there can only be 1 of the
special clauses per device_type VALUE (including nvidia ==
acc_device_nvidia).
This patch also does a refactor/unification of this with the rules of
other clauses, as we now know they are effectively the same.