Refactor auto-switching iteration

Extract probing of one directory level to own function, so we can later
use it to set default ruby from ~/.ruby-version.
Default to ~/.ruby-version also outside home directory
Fix assert message
Only try auto-switch using a particular .ruby-version once

Set RUBY_VERSION_FILE also if .ruby-version is invalid, so that we don't
try to use it again and again. Otherwise error messages are printed
after each command.

The downside is that the .ruby-version won't be automatically read after
fixed. But we do not read modified valid .ruby-files, either.