Ajaxify user list for files external

replaces chosen with select2, fixes #7499

@DeepDiver1975 @blizzz @PVince81 please review

Would be good to add more comments as I'm struggling to understand what's being achieved here and with the promises. Why do we need promises here and why are we doing multiple ajax calls ?
Code comments would help :smile: