new SMB storage backend

New implementation of the SMB storage backend using a new wrapper for smbclient (https://github.com/icewind1991/SMB).
This improves the test-ability and maintainability of the SMB backend and hopefully helps with the various issues the current SMB backend has.

Tested it locally against an smb server running on arch, requires testing against a windows smb server.

cc @DeepDiver1975 @karlitschek