Redmine#6063: Context name validation is too strict

see https://dev.cfengine.com/issues/6063

brings back ec62d6798ede560f496f9073c6d82ff72b1ec3cb and adds logging and better validation with a regex, based on what's in `cf3lex.l`.  `[\200-\377]` are excluded from the regex right now.
... or we failed to compile our regex.  I suggest changing the conditional structure to:
```
if (!rx) { report problem }
else if (StringMatch...) { change context }
else { Log() bad directive }
```

I assume this stanza is expected to be encountered typically once in ExecModule's scan through many lines, hence not worth optimising out the repeated compilation of the regex.