Allow for type class override, and provide access to the config from the receiving model.

Certain types will not load with has_barcode, such as :ean_13 which looks for Bardy::Ean13 instead of the correct Bardy::EAN13. With this pull request, you can pass has_barcode the :type_class with the full class and it will work correctly.

Additionally, I have exposed the config so that the original type or other options are available from the model (in case you want to validate your barcode and output the type in the validation error).