URI: add this helper class and its unit tests
Use URI class everywhere that server/share/paths were being used
Directory: if only server given in shares_root, ignore null share
Browser plugin: print SMB URI, not path on host
Propflags: interpret the N flag as Normal

Encountered with smbclient 4.1.9. Previously, the absence of flags would
mean "normal", but apparently this version of smbclient prints an 'N'.
File: bugfix: invalid variable reference
Directory: delete recursively to remove nonempty dirs

Copied from the parent Directory class, the dircetory should delete its
children recursively before deleting itself. This enables seamless
deletion of directories, and also moving a directory into another one,
since that is implemented as a copy/delete operation.
Add named keys to array of `ls` entries, for readability
File: cache eTag after generating it

For the remote possibility that we need it again this request.
Directory: implement getLastModified by injecting data on creation

The data was previously not passed on to the directory. Change the way
the parameters are passed on creation: use explicit separate variables
instead of an opaque '$entry' array.
License notices: replace oldschool C style comments with hashes

The license notices with their oldschool C comment style were a bit
harsh on the eyes. Replace the old formatting with shell-style comment
syntax using a single hash. Also update the year where appropriate. No
functional changes.
Config: load all PHP files in config dir

Read all files dynamically from the config directory, don't enumerate
the possible files. Also define $ldap_groups.
Config: change from static class to regular class

Make it easier to unit test, contain all the config inside one object.
Config: use magic get/set methods to access properties

Avoid the need to define private variables for all properties; just put
them all in an array and use __get and __set to access them.
Config: also encapsulate define()'d constants

The config class now also encapsulates the old method of configuring the
application: by define()'ing constants. The Cache class will now check
for these constants and encapsulate them inside its own structure.

Other classes now no longer use the constants, but query the config class
directly. The consequence is that an instance of the config class must
be passed around everywhere.
Auth: add this class to find and hold auth data

Place the auth code into a single class and pass a pointer to that class
around.

Current advantage: this avoids having to pass both username and password
around individually. It also cleans up server.php since all the auth
setup is done elsewhere.

Future advantage: more freedom in how we do auth, It may some day be
possible to define different "views" of the login name for different
tasks. The login to Samba may occur with a certain domain or workgroup
Merge pull request #4 from aklomp/contrib

Lots of cleanup/refactoring work done in my own time