Add support for BCH
code clean up?
[BRAKING CHANGES] Reverse the poly notation.
code clean up
some improve

 - add prim-poly for 7 and 9
 - add simple error messages
 - rename main functions
test