Add an unlimited string length for server chat packet
0x03: server chat packet test fixed
Release 0.11.4
New way to handle conditional fields in packets

Some packets have conditional fields. The previous way to handle
those was to provide a single condition for each packet type
which determined if additional fields are appended to the packet.
Unfortunately this is not enough for some packets: They have
complex conditions that cannot be expressed this way.

This diff changes the way conditional fields are handled: For
each field in each packet there is a new optional 'condition'
function which will be called with the packet data. Only if
the 'condition' function returns true, the field is de/encoded.

This diff also adds new (previously missing) conditions.
set unavailable fields to null
Merge pull request #62 from dividuum/master

New way to handle conditional fields in packets
Release 0.11.5
Updated protocol version to support 1.6.4
Cleanup: terminate all statements with semicolons, remove unnecessary semicolons, remove unused variables, add hasOwnProperty checks in 'for x in y' loops.
Merge pull request #68 from Darthfett/master

Cleanup code