Conform to revised coding style for do { ... } while (...);

Spacing change only: put the opening { on a line of its own, not after
the do, so that it lines up with the closing }; and put the while on
the same line as the closing, so as to make clear that we're not
looking at a while (...) { /* empty */ } written as while (...);

Did also include one blank line for clarity of reading.
Change "Unacceptable model uncertainty" message and its log level.

It's not the most intelligible message - so reword it to give the
reader some chance of understanding it - and it's kinda spammy (albeit
more so than usual, lately, thanks to my recent bug in the parser).
Also add the name of the field we thought we were parsing, as that's
relevant.
Interpret failing function calls in ifvarclass/if/unless as class not set.

ifvarclass is treated explicitly during the evaluation of a promise.
Function calls might fail due to unexpanded variables in arguments or
for other reasons, in which case the classes should be assumed not to
be set.

Remove unused function in eval_context.c, make static equivalent
in promises.c, where it is used.

Include acceptance test.

Fixes Redmine 6327. Can't be cleanly cherry-picked into 3.6.x.
disable unstable unit test on Solaris
Merge pull request #1921 from ediosyncratic/do-while-style-fix

Conform to revised coding style for do { ... } while (...);
Merge pull request #1923 from ediosyncratic/model-uncertainty-quieter

Change "Unacceptable model uncertainty" message and its log level.
Merge pull request #1924 from vohi/redmine/6327

Redmine 6327 - Interpret failing function calls in ifvarclass/if/unless as class not set