DefineButtonTag now inherits from DoActionTag
fix RemoveObjectTag writing
refactor filters a bit
it seems that reserved value is not always zero
fix -1 taking 3 bits
fix overflow and rounding errors in BitReader
fix overflow in BitWriter
16.16 fixed point values really have more precision than float. Must use double to get bit-perfect result