include connectionState-check in IPConnection.Write(); this narrows the scope of the socketLock to the least neccessary scope and avoids Device.sendRequest*-methods to behave like foreign methods (access to many ipconnection internals)
remove socketWriterLock as it is only used inside IPConnection.Write() and it is now completely superseded by the socketLock
make generation of SequenceNumber thread-safe so it is not possible to have two consecutive equal numbers generated
simplified sequence-number code
sendRequestExpectResponse will in every  case set expectedResponse-values to zero
shorten internal representation of UIDs to 32 Bit
replace bloated GetUIDFromData by LEConverter-call (looks and behaves equivalent)
python: Fix char list packing in Python3
delphi: Add explicit cast for overflow cases

Also don't call Move with a length of 0.

This avoids ERangeCheck runtime errors.
delphi: Avoid signature mismatch for GetIdentity procedure

Don't define TArray0To2OfUInt8 twice.
Refactor compile scripts
java: Use IPConnection to access static members instead of ipcon
java: Remove some redundant casts
java: Ensure to set socket and stream to null even if close() throws an IOException
java: Use a shorter format for JavaDoc links
java: Remove more reduntant casts
delphi: Revise comment about avoding move if remaining length is zero
Fix directory handling for compile examples scripts

Also enable -Werror for C bindings and -vw for Delphui bindings.
csharp: Make first generated sequence number to be 1 again
java: Remove more redundant casts