SMB: add first tests

Make code testable by optionally adding a $proc object to the method
call; mock this $proc object to check the values passed.
SMB: add test for ->getShares()
SMB: add tests for ->get()
SMB: add test for ->put()
File: add test for ->getName()
Propflags: treat missing argument as null
SMBClient\Parser: add tests
SMBClient\Parser: add tests for ->getDiskUsage()
Process: split function declarations for consistency
Process: add first tests
Process: add test for ->writeCommand()
Log: turn static class into dynamic class
Directory, File: use dynamic log object for logging
Log: split into abstract and Filesystem class, add tests
SMB: inject $log parameter, don't use global Log object
Process: add Log object to constructor
Process: now that we have logger, log errors properly