Login will check if op has a signin. If not, will attempt a login.
Generally this function will exit to shell with an appropriate exit code,
Except if an unusual error is returned (eg io error), in which case it
will return to caller for usual handling.