[FEATURE] External auth codes in auth code validator

The auth code that should be validated can now be provided as
a method parameter.
[BUGFIX] Return auth code type as string

This prevents problems when comparing the type to a constant.
[BUGFIX] Fix parameter order for clearRecordAuthCodes()
[TASK] Force persisting after clearing auth codes
[BUGFIX] Do not override records during generation

The auth code generation methods will not initalize new auth code
objects any more. This allows the user to pass auth code objects
with initializes values.
[BUGFIX] Clear disabled auth codes
[TASK] Allow multiple auth codes for one record

The auth code clearing in the generator methods is removed so that
it is possible to have multiple auth codes for the same record.