Add a FS error specific exception
We need to stop catching std::exception as a catch all, especially if we want sqlite errors to be propagated higher up.
All sqlite errors are inheriting an sqlite specific exception class, but the filesystem errors are mostly using std::runtime_error or std::system_error.
Once this is done, we can handle errors better, as for now we might ignore some critical database errors, if it goes through a catch all