Improve test case for ifvarclass with functions

As per feedback to ediosyncratic, make sure we test the positive
case as well, and use standard "ok" class to mark pass/fail.
Merge pull request #1928 from vohi/master

Improve test case for ifvarclass with functions
redmine6531: Fix some strings of 9s to be of sensible lengths.

We got weirdness on Solaris and Aches because integers were rejected
as invalid if they happened to exceed 1410065407 (0x540be3ff),
a.k.a. on(2014,8,6,6,50,7); which just happens to be an imminent date
we tried to use.  (Yes, imminent; month and day are zero-based, not
quite what one might have expected.)  We discovered this was the upper
bound for signed integers, 9999999999 (ten 9s), wrapped into a 32-bit
int's range.  The lower bound was eleven 9s, negated; and the range
for unsigned ints was from zero to this eleven 9s value, so we even
had inconsistency between the upper bound of signed int and the
matching bound for unsigned.  Head.  Desk.

At the same time, CF_HIGHINIT and CF_LOWINIT (were undocumented and)
had likewise different numbers of 9s to them.  This made no sense
either.  So I've amended the sequences of 9s so that: corresponding
bounds actually match; and the values that result are faithfully
represented as 32-bit int values.  I've also added relevant comments.
The use of strings of 9s as bounds remains eccentric, but at least
it's not brokenly so.
Truncate over-long strings of 9s.

We use long strings of 9s as bounding values for integers.  On 32-bit
values, if those long strings exceed 999999999 the resulting int wraps
and is smaller, so don't use more than nine 9s in a row.

In contrib/cfengine.el, avoid repetition of these strings of 9s by
defining two new constants for the ranges that involve them.
Quote a value abused as a function in cfengine-mode's elisp.

M-x byte-compile-file (to check my 9s-fix was sound) revealed a use of
a string literal as a function, which it seemed likely was meant to be
a quoted value, so I did that.  There remain three unbound variable
reference grumbles from compilation, but I can't immediately see what
to do about them.
Ignore compiled emacs lisp files in contrib/.
Use a define consistently for all waiting for stop/exit.
Increase range of allowed integers to the full 32-bit range.

Narrowing to 999999999 made the range too small for time_t values
(e.g. the return from on(), which is what started all of this anyway)
that represent roughly the present time.  So expand the range as far
as we sensibly can, to the max ranges for signed 32-bit integers
(values are stored in int variables, even the CF_VALRANGE ones that
clearly think they're unsigned).
Follow-up revision of promise_knowledge.cf

Match the new ranges for integer values.