Add golangci-lint for linting and refactor the code based on the
feedback from running it.
Changes:
- Add configuration for golangci-lint.
- Break the large function in create.go into smaller ones.
- Rename internal/templateFuncs to internal/templatefuncs to remove
upper case letters in the package name.
- Add a mage target for lint tests.
- Use go generate and a third party tool called jsonschemagen to
auto-generate the CV data type from the JSON schema.
- Update the schema by changing number to integer to ensure that the
integers are set to the correct type.
- Refactor some code.