Add FTP Writer, break examples into multiple files.
Allow sending nil values into certain connectors
Add FTP Reader
Add basic support for xml datatype

If XML is provided as datatype on a source. h4l will check for the xml
variable to exist and load 'luaxml'.
Add X12 Format Support
Add X12 Support
Simplify Hl7._segments

There's no need to loop through all every iteration
There's no need to keep separate counters for total and match segments
There's no need to take a substring of a segment to check its type
Copy optimization to x12/edi

Consider giving x12/edi and hl7 a common parent.
Add timeout to LLP Listener
LLPListener Improvements

No longer cuts off connections after receiving a message and responding.
Allows incoming connections to decide when to close connections.
Stores open connections for future use and queues up pending messages for
return to the channel.

Fixed syntax error in channel.
First pass at XML object

Uses LuaXml to parse a document, and provides Xml:getData() to easily
access data.
Use like this:
msg=Xml:new(xmlString)
print(msg:getData('ParentTag', 'ChildTag', ... ))

Coming Soon:
setData() -- like getData() but for writing
tags -- iterator for looping through repeating blocks
getData() -- will change so that it can return a block as a new Xml
object.
Xml updates

added setData, tags
Xml Update

Change setData to insert tag if none is found.
Update to Xml:setData()

setData now builds a whole path if elements along the path do not yet
exist.
i.e.
x=Xml:new('<root />')
xml is <root />
x:setData('data', 'First_Child', 'Second_Child')
xml is now
<root><First_Child><Second_Child>data</Second_Child></First_Child></root>
Added Xml:addTag()

Functions identically to setData() except it will not overwrite existing
tags. It will always create a new tag.
Changes to HL7

Added newSegment(), for adding a blank segment. Returns the added segment

Starting work on creating an example file for transformers and all datatypes.