Switched password decode fail warn to highline + added tests

Invoking highline seems consistent with the way the rest of the codebase
communicates with the end user. It also make testing convenient.