brew-doctor: warning the external commands with conflicted name

Per conversation on https://github.com/Homebrew/homebrew/pull/34732. 
I think at least we should warn users if there are external commands with conflicted name in `brew doctor`.
@mikemcquaid I found this would cause variable overwrite on ruby 1.8 (works fine on ruby 2). So I think it's better to use `Hash.new { |h, k| h[k] = [] }`?