new db, directory: new directory api

Don't export struct dir to outside.

Also playlist_vector.c, database.c and a some parts of the db plugin is merged
into directory.c. There is where they belong.

Currently there're many places leaking the dir_handle. Gonna fix them
later.

And a note here: the directory_ prefix should be changed to vfs_.