Plugin system

Improve plugin system. Scanning for plugins still has to be implemented for Windows, either by using a cross-platform implementation of dirent or by directly using WIN32 API to list files
would rename this method to ```scan(...)```