group the tests to run them faster:
- introduce stage "validate" that runs code validation/syntax checking
- introduce script bin/test_validate.sh that runs all the validation
tests that are not allowed to fail. This way only one container is
created reducing the time of starting/stopping for the next test. No
real need for separate container is needed, as the environment is the
same for all of those tests
- the show_highstate against upstream formulas test job is being run
separately as it is allowed to fail, and we don't want it to run on
production branch (also because there is a change of the testing env)
- the rest of the tests (only test_nginx for now) are in a test stage,
which means they will run only if the "validate" stage finishes
successfully (we don't want to test the generated configs if we know
that our code is wrong, so less waiting for the test runs)