SSL.Cipher: Added support for Camellia/GCM cipher suites.
Crypto.GCM: does not exist without nettle support
Search.Utils: Get rid of the timestamp(len) syntax.

The syntax was ignored in MySQL 4.1, deprecated in MySQL 5.1,
and removed in MySQL 5.5. Cf MySQL 5.5 Ref Manual 2.12.1.1.
Crypto.DSA: Fixed a few warnings.
Compiler: Fixed broken attribute handling.

debug_push_finished_type_with_markers() had broken handling of
PIKE_T_ATTRIBUTE types (struct pike_strings were handled as types),
which could trigger SIGSEGV.
Add class Standards.JSON.Validator which can be used to validate json with a schema

The Standards.JSON.Validator class does not yet implement the full set of
schema validations. It does not yet handle dependencies nor references.
The regular expressions (for pattern properties) are limited to those that
can be handled by Regexp.SimpleRegexp.

To use the validator, load and decode a JSON schema and create a validator:

    mixed schema = Standards.JSON.decode(schema_string);
    Standards.JSON.Validator validator = Standards.JSON.Validator(schema);

Then load and decode some JSON data and pass it to the function
Standards.JSON.Validator->validate():

    mixed json_data = Standards.JSON.decode(data_string);
    if (string error = validator->validate(json_data))
        werror("Error: %s\n", error);
    else
        write("JSON matches the schema\n");

For more information of JSON schema look at
- http://json-schema.org/documentation.html "The home of JSON Schema"
Standards.JSON.Validator: Fixed typo in is_JSON_boolean().

Renames is_JSON_boolen() to is_JSON_boolean().
Somewhat dubious fix for infinite loops in Image.GIF.decode.

Certain input data can create loops in the LZW decoder due to
the way it is implemented. This stops the loops, and that is
about it.
Some more string -> string(0..255).

encode_value_*, read_{file,bytes} and string2hex and hex2string.

I have only updated the return values, to avoid making it even more
impossible to write strict types code.
Merged the "ph/bits" branch.

This allows one more syntax for int-ranges in types:

(Xbit): This reprensents the range (0..(1<<X)-1).

So, string(8bit) is identical to string(0..255) and string(16bit) is
string(0..65535).

The same is true for integers, int(3bit) is int(0..7).

This does not conflict with any existing code because identifiers can
not start with a number.
Mysql: Fixed overflow in fetch_fields().

The length attribute can be larger than 0x7fffffff for
eg longblob (where it is 0xffffffff).

Fixes some of [bug 6739].
Image.Image: Fixed SEGV in skewy().

The bug seems to have been due to a code sequencing miss (the
corresponding code in skewx() was correct).

Fixes [bug 3687].
Fix type warnings.
CMOD precompiler: enable polymorphic overloading to actually work (sending arguments)
Compiler: Migrate OPT_* flags to the variant dispatcher.

Variant dispatchers need to have the same set of OPT_* flags
as the functions they dispatch to, to avoid over optimization.

Fixes [Pike Mailinglist 13786]/[LysLysKOM 20594561].
Compiler: Support type markers in string types.

Ensure that expanded type markers in strings don't
contain non-integer types.
Sprintf: Derive a stricter return type.

The sprintf attribute handler is now capable of deriving a return type.
Compiler: Multiple type handling fixes.

* Allow markers for character ranges in strings.

* Allow indexing of marker assignments and scopes.
Runtime: The variant dispatcher now knows about callables.

The variant dispatcher earlier accepted anything as match for
a function or program argument.

Fixes issue where the wrong variant was called for
Crypto.RSA()->generate_key(128,5) [LysLysKOM 20595612].
Fixed callablep for multi-level arrays.