feat: add semantic release
Description
Adding a CI step to perform semantic release so that we can version this repository properly. Currently this will just version everything but I think that's fine for now, we can explore doing like per module/folder releases at some point in the future.