English grammar fix.
Fundamental properties of empty strings corrected.

An empty string:
- IS lowercase
- IS uppercase

'STRING_IS_LOWERCASE' means the same string will be returned for
lower_case(str), and 'STRING_IS_UPPERCASE' means the same string will
be returned for upper_case(str).

Having this be wrong for the empty string is not really a good idea,
since when strings are constructed using += the bits will not be set
correctly if you start with the empty string.

Also note: All code using string ranges really needs a special case
for the empty string, since its range of characters, when checked
using check_string_range, will be 0..255 (loose check), or
-MAX_INT32..MAX_INT32 (non-loose check).

This is done correctly in the 'string_has_null' function, which is
what is supposed to be used to check if strings contain null
characters.
protected -> private where it makes sense.
ZXID: Fixed some memory leaks on Session destruct.
ZXID: Renamed internal function to avoid namespace conflicts.
SNMP: Re-fix the lookup table sent to simple_der_decode.
Use Stdio.Buffer instead of ADT.struct. Fixes a bug where the code was stepping back in the buffer by reducing index, which isn't supported anymore in ADT.struct.
Updated to tzdata2014j.