Rewrite Upscaler to support multiple backends
At the moment, Upscaler is designed to only use Real-ESRGAN ncnn Vulkan. However, per #30 (closed), I am planning to expand it to support multiple backends. To achieve this, we will have "extensions", where each extension passes information to the main window, where the main window will display all the information properly. Each extension will be in a separate file. That way, the whole program will be modular: we will be able to add or remove support for backends very easily, and it will improve maintenance by separating everything.
Before we start rewriting, I'd want to merge all the existing MRs. Right after that, I'd want to make a new release so people get an improved version of the app. And then we should start rewriting.
Edited by Hari Rana