Check for write access to remote artifact cache early on in the pipeline

Previously, the first time you configured an artifact cache, you would
get to the end of your first build and then BuildStream would exit
because of some stupid mistake like you got the address slightly wrong
or you forgot to add the host keys of the remote artifact cache to
`~/.ssh/known_hosts`.

To avoid surprises, if there's an artifacts push-url configured we now
try to connect to it as a preflight check so that issues are raised
early.

On success, you will see something like this:

    [--:--:--][90904fe4][ main:gnu-toolchain/stage2.bst      ] START   Checking connectivity to remote artifact cache
    [00:00:00][90904fe4][ main:gnu-toolchain/stage2.bst      ] SUCCESS Connectivity OK

On failure, it looks like this:

    [--:--:--][90904fe4][ main:gnu-toolchain/stage2.bst      ] START   Checking connectivity to remote artifact cache
    [00:00:03][90904fe4][ main:gnu-toolchain/stage2.bst      ] FAILURE BuildStream will be unable to push artifacts to the shared cache: ssh: connect to host ostree.baserock.org port 2220: Connection timed out

As a bonus, for some reason this check causes SSH to ask about unknown
host keys rather than just failing, so you may now see messages like
this if the host keys are unknown rather than an error:

    The authenticity of host '[ostree.baserock.org]:22200 ([185.43.218.170]:22200)' can't be established.
    ECDSA key fingerprint is SHA256:mB+MNfYREOdRfp2FG6dceOlguE/Skd4QwnS0tvCPcnI.
    ECDSA key fingerprint is MD5:8f:fa:ab:90:19:31:f9:f7:f1:d4:e5:f0:a2:be:56:71.
    Are you sure you want to continue connecting (yes/no)?
3 files changed