Pike 8.0: Unset variables are UNDEFINED.

Use object_variablep() to test whether a variable exists in an object
(that's what it's for...) instead of zero_type() to check if it doesn't.

Fixes issues with the config interface and Pike 8.0.
Pike 8.0: String.Buffer contains a sprintf().

PikeCompiler has inherited String.Buffer, so we need to make sure
not to call the inherited sprintf() when we want the global one.

Fixes "Bad argument 1 to add(). Expected string|String.Buffer.".
Pike 8.0: #if efun() is obsolete since 10 years back.

Reduce warnings from cpp().
Pike 8.0: Add support for some new SSL features.

* Filter suites based on key length and key exchange method.

* Reject clients with old versions of SSL/TLS.
SSL: Disable support for SSL 3.0 by default.

Requires recent Pike 7.8 or later.

Blocks the POODLE attack.
Merge branch 'patches/poodle' into 5.4

* patches/poodle:
  SSL: Disable support for SSL 3.0 by default.
  Pike 8.0: Add support for some new SSL features.
  Pike 8.0: #if efun() is obsolete since 10 years back.
  Pike 8.0: String.Buffer contains a sprintf().
  Pike 8.0: Unset variables are UNDEFINED.
SSL: The protocol defaults in Pike and Roxen may differ.

The callback set with set_changed_callback() is only called if
the value differs from or is changed to the default.

Fixes disabling of SSL 3.0 by default on Pike 7.8.
Merge branch 'patches/poodle' into 5.4

* patches/poodle:
  SSL: The protocol defaults in Pike and Roxen may differ.