[ADD] Migration scripts for the project addon

Revert and re-open #65.
I now see that you actually can pass a list to cursor.execute(), so we should settle for
`args = tuple(args) if typeof(args) == list else args` then