Use conventional commits and enable commitlint

Summary

Follow what the container-registry has done to use conventional commits and enforce usage by enabling commitlint

From the MR that introduced commitlint to the container registry:

This is a proposal to adopt the Conventional Commits 1.0 spec. The intent is to:

  • Enforce a consistent commit convention, which requires us to be more careful about their messages, leading to a sane commit history that is easier to navigate;
  • Be able to autogenerate changelog, tags, and releases, by auto determining the list of changes and the appropriate semantic version bump based on semantic release (next step).

Type of commit titles that can be used, taken from https://github.com/angular/angular/blob/master/CONTRIBUTING.md#type

build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
ci: Changes to our CI configuration files and scripts (example scopes: Circle, BrowserStack, SauceLabs)
docs: Documentation only changes
feat: A new feature
fix: A bug fix
perf: A code change that improves performance
refactor: A code change that neither fixes a bug nor adds a feature
test: Adding missing tests or correcting existing tests

We will also need to update the check for the danger bot !109 (comment 644628429)

Edited by Jaime Martinez