add test and implementation for CRC16