Fix editing remote unwriteable file

With the original advice, if we try to find a not writeable file on a remote machine, the extra tramp prefix would be inserted, As a result, we actually end up in a blank new file. For example, I was trying to find the hosts file on a remote machine named theoden:
```
File not `/sudo:root@localhost:/ssh:theoden:/etc/hosts' found on remote host
```

Since we'er advising `ido-find-file`, I suppose `buffer-file-name` will always return something except we'er finding a directory, which has already been checked in the second clause, so I think the `buffer-file-name` check can be safely removed, right?
I don't think `file-name-directory` plays nice with `nil`.