Modified block header reading/writing for arbitrary data blocks.
Added support for block descriptors that allow specific names or short strings to be associated with blocks.
This allows blocks with the same format to share a general name and also have a specific name or descriptions associated with them.

Modified files:
src/binary/ProtocolDataInput.java
src/binary/ProtocolDataOutput.java
src/binary/ProtocolHandler.java
src/binary/ProtocolHeader.java
src/binary/ProtocolHeaderImpl.java
src/binary/ProtocolInput.java
src/binary/ProtocolInputReader.java
src/binary/ProtocolOutput.java
src/binary/ProtocolOutputWriter.java
src/dataTransfer/DataHeader.java
src/dataTransfer/DataHeaderImpl.java
src/dataTransfer/DataTransferInput.java
src/dataTransfer/DataTransferOutput.java
src/dataTransfer/DataTransferableFactory.java
src/xml/XMLHandler.java
src/xml/XMLInput.java
src/xml/XMLInputReader.java
src/xml/XMLOutput.java
src/xml/XMLOutputWriter.java
src/xml/XMLTag.java
src/xml/XMLTagImpl.java
src/xml/XMLTransferInput.java
src/xml/XMLTransferOutput.java
src/xml/binary/XMLInputStream.java
src/xml/binary/XMLOutputStream.java