A bit of refactoring to make using the ui.portablefilenames warning more useful, then use it when warning the user about case collisions. Compared to v1, patch 2 of 2 now notifies the user about case collisions via ui.warn, util.Abort, or nothing at all, depending on config.