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

1. But why not give non-UTF8 warnings on *nix as well as Windows? Even if the issue is less common on *nix, these files still won't work properly.

2. On Windows, this code detects a BOM and makes it work (along with a warning). On *nix, the code will work even without BOM detection -- but why not give the same warning as on Windows?

Overall, I think it's a good idea to have the behavior be consistent across platforms.