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?
It's not a typo, from the source:
```
;;;###tramp-autoload
(defun tramp-tramp-file-p (name)
  "Return t if NAME is a string with Tramp file name syntax."
  (save-match-data
    (and (stringp name)
	 (string-match tramp-file-name-regexp name))))
```