Distributed: Extreme allocation optimizations.

Technical Description:
- DistributedObjects now use the StringBuilder class correctly, reducing
the amount of String objects created.
- DistributedObject's String value is now only computed on updates and
creations. Clients joining ClientZones no longer cause recomputations on
unchanged objects; instead the value is cached until it is changed. You
should notice some major memory differences on large ClientZones.
- Switched InternalPacket3KeepAlive's PACKET_PRIORITY from INTERNAL to
HIGH. This should help reduce clients timing out from taking too long on
joining large client zones.