[lint] Prevent Versioned Handler Changes
This adds a CI step to ensure changes are only made on versioned functions and structs that are greater or equal to the version in the version
file - unless the PR explicitly has "#unsafe" in the title.
I had initially started to put this in the tools/analyze
package, but it seemed cleaner to separate this into it's own so we can get a nice color diff on the changes and not deal with manipulating git
state in Golang.
I pushed a dummy bad commit to this PR for example job output here: https://gitlab.com/thorchain/thornode/-/jobs/3246253335.