Factor out the common help and version CLI options.

The options method had become a bit long.
Adjust the live secure tests to be more accurate.
Factor out the different SSL config options for HTTPS connections.
Neaten up the code to get a run's resource links.
Fix typo in Run#grant_permission.
Add mocked tests for workflow run user permissions.
Add a parse method to the credentials objects.

Can now create a HttpBasic instance with simple userinfo style (user:pass)
input.
Found a way to better test the credentials objects.
Fix up the test suite driver code.

Now uses the credentials parsing method and sets up live testing in the correct
place.
Streamline mocked run test setup.

Create the run in the setup step.
Update the public key of the secure remote services.
Update the client certificate for secure remote services.
Check mocked run outputs for errors.
Move the run error checking to a separate test.
Test mocked output streaming.
Test mocked output ranges.
Stop using a pre-cooked server reply for Run#status.

Not flexible enough because we need repeated, different, calls to it most of the
time.
Test mocked run with error outputs.
Test mocked run with list outputs.
Fix the HTTP status code of the mocked data range test.

Should be 206 (Partial Content), not 200 (OK).