warn against the byte order mark if exists; fixes #545

Two things:

1. I think the `isWindows()` check at the beginning of this function should be removed, so that non-UTF-8 files and UTF-8-BOM are correctly detected on all platforms.
1. I think this BOM check should happen first, so that a UTF-8 file with BOM is detected on *nix. (On *nix, I believe that the `readLines(encoding='UTF-8')` will read in a UTF-8-BOM file without any problems, but we still want to give a warning.)