This PR adds a test architecture to be able to test plugins
Main infrastructure done by @WerWolv
---------
Co-authored-by: WerWolv <werwolv98@gmail.com>
### Problem description
Currently, the providers use the method `isSavable()` to determine both
if they can use "Save" or "Save as".
This behaviour is problematic because some providers may need to be
saveable but not saveable as: for example the view provider. The
original provider may not allow to be saved.
### Implementation description
I separate these two behaviour by creating another function:
`isDumpable()`, that return true by default but can be overridden by the
provider to return false, if the provider should not be dumped in any
way.
### Additional things
While I was at it, I also marked "export" operations as needing the
"dumpable" flag. That way, we can't accidentally export the whole
address space of a process as base64.
I also added documentation for these some functions in Provider
* feat: Initial implementation of an Intel Hex provider
* fix: Reading of bytes from intel hex files
* lang: Added localization for new provider
* ui: Only show file name in intel hex provider name
* feat: Added Motorola SREC provider
* sys: Initial effort to replace existing project files with a better system
* sys: Added back marking provider as dirty
* sys: Remove git commit information from project files
* sys: Format data processor save file nicely
* fix: Automatic pattern loading not working correctly
* ui: Added warning popup when closing a provider with modifications
Closes#604
* sys: Fixed build issues
* tests: Removed useless debug logs
* patterns: Updated pattern language
* sys: Added log message when crashing with a signal
* sys: Make sure abnormal termination handlers are being called more reliably