added runtime flag "opt" which does a small UDP optimization and encapsulates the changes in this merge
stop allocating message objects for each send and instead allocate one and re-uses it
does not repopulate the buffer for changes that only affect the flow id, sequence number, and time, only repopulates the buffer for changes are more significant