Ensure create_instance.sh follows single responsibility process

The create_instance.sh currently does too many things at once. For example, it has a unique execution path for running Oracle unit tests, it has a separate execution path for spawning an old catalogue version, and it magically constructs an image tag for you based on the (non-obvious) parameters you give the script.

The idea is to separate this out into separate functionality:

  • Running the Oracle unit tests should be a separate script, similar to how this is done for all the tests. That also removes the need for the confusing /usr/bin/true script in the ci.
  • For the catalogue version, the script should simply take a --catalogue-version flag or grab the latest version if not provided. Then it is up to whoever calls this script to provide an older catalogue version if they want to run the liquibase tests.
  • The user should always explicitly provide an image tag to the create_instance.sh script. We can keep the logic for creating this image tag, but it should be a separate script that is called separately.

Apart from this, the create_instance.sh script also performs some basic configuration after the cluster has been spawned. This can still be done in create_instance.sh (for now?) but it should be configurable. That is, this configuration should be a separate script that the user can pass in via e.g. --config-script. Perhaps this argument can be optional at first; if nothing is provided it just defaults to the script that contains the functionality that is there now.

Before this is implemented, the flags of this script should be refactored to maintain readability; see #897 (closed).