Added an assertion macro.
Rewrote the bit_coder to be more atomic friendly.