Ported c064fe2 from ZXing

Original commit message: "Add support for Code B FNC characters"
Ported e45d175 from ZXing

Original commit message: "Unit test FNC1 and FNC2"
Ported 9d4b8b9 from ZXing

Original commit message: "Issue #61 : touch up style in test and
simplify new logic"
Ported 1baa8f3 from ZXing

Original commit message: "Specify allowed EAN extensions as a hint."
Ported bd4536f from ZXing

Original commit message: "Issue #63 : minor formatting and doc changes"