Fix LoginCli test failures on Jenkins

#### Pass STDIN string to LoginCli exception test

This test appears to require a non-empty string when run from a
non-interactive terminal such as Jenkins. It can be reproduced by piping
input to rspec:

    ➜  vcloud-core git:(vcloud_login_cli_test_failure) ✗ echo | b rspec spec/vcloud/core/login_cli_spec.rb:133
    Run options: include {:locations=>{"./spec/vcloud/core/login_cli_spec.rb"=>[133]}}
    F

    Failures:

      1) Vcloud::Core::LoginCli error handling when underlying code raises an exception should print error without backtrace and exit abnormally
         Failure/Error: expect(subject.stderr).to eq("vCloud password: \nsomething went horribly wrong")

           expected: "vCloud password: \nsomething went horribly wrong"
                got: "Reading password from pipe..\nundefined method `strip' for nil:NilClass"

I can't reproduce this by calling `vcloud-login` without rspec so I'm think
it's something to do with how we're instrumenting $stdin with StringIO. As
such I don't feel SO bad about this fix, even if it requires a long comment.

I've also removed with `.with()` expectation because we don't really care
about that in this test. We have others to ensure that the class gets the
right args.

NB: I did try highline's `whitespace = nil` option but it then blows up when
calling `nil.length`.


#### Allow LoginCli test to run from non-interactive

This test failed on Jenkins because `STDIN.tty?` returns false and we expect
the password to be piped in. So allow it to match either message.

---

Fixes errors here: https://ci-new.alphagov.co.uk/view/vCloud%20Tools/job/vcloud-core/96/console