Custom Ser/Deser for TreeNode and selected TreeNodeData objects

Custom ser/deser is more efficient for TreeValue and TreeData objects then the default codec encoding.  For example a simple encoding of TreeNode (with no children or data attachments) is 27 bytes using CodecBin2.  With the custom encoding it is 3 bytes.  Another improvement is on the DataTime object.  Default encoding stores to longs for start and endtime.  Custom encoding uses a var length long for the start and a delta encoded long for the end time.