Draft: Register external IO formats only if needed
This MR will delay the registration of external IO formats: the external formats are registered only if none of the ASE's formats can do IO with the requested file format. This speeds up the code when external formats are not needed and (possibly slow) external code doesn't need to be executed.
Related to #1124 (comment 1030599664).