Add a BaseCodeGenerator that people can override.

Allows to generate application specific/styled gift codes.
Merge pull request #44 from Senjai/2-1-gcgenerator

Add a Code class responsible for gift code generation. Make it easy to swap out with an app specific version.