Preserve relative and absolute bit positions when converting buffered to direct DOS
- When converting a buffered DOS to direct DOS, the relative bit
position in the old direct DOS needs to become the relative bit
position for the new direct DOS. This is because the new direct DOS,
which used to be a buffered DOS, had a bit position relative to its
beginning, not the beginning of the data. Similarly, the absolute bit
position and relative bit limit must be preserved as well. This fixes
a bug where the final bit position does not match that actual bytes
that were written.
- Modify the TDMLRunner to validate that the number of bytes written to
the unparse output stream match that final bit position.
- Set tests to round trip now that this bug is fixed