Added ability to publish patches for non-latest version

Also, started to work on semantic versioning check, more specifically, started to implement comparing function types for compatibility.
Perhaps this can also take some sort of message that explains exactly what the difference is?

I think one case that could come up would be: the person wants to make a minor change, but accidentally changes an API. If the error tells them exactly the function that has changed, they can easily decide whether that is intentional.