Fildirute

Body: 

Fildirutes are an idea for file system naming and simplification. Rather than having separate APIs for files, directories and attributes (and indices too!), you have a single fildirute kind of thing. You can read data from it like a file. You can also open it like a directory and see what's inside. The things inside are fildirutes too. A small one inside would be like an attribute, the name would tell you what the intended purpose was.

Example

If you had a document called "MyDoc", then reading data from it would give you the document text. Looking inside it as if it were a directory, you'd see "MyDoc/mime-type", which if you opened it and read the data, would give you "text/plain". There could also be things like "MyDoc/Thumbnail" which would have "MyDoc/Thumbnail/mime-type" containing "image/png", and "MyDoc/Thumbnail/Width" containing 32 in binary, and for completeness, "MyDoc/Thumbnail/Width/mime-type" would contain "number/int32".

Eg,

MyDoc
MyDoc/mime-type
MyDoc/thumbnail
MyDoc/thumbnail/mime-type
MyDoc/thumbnail/width
MyDoc/thumbnail/width/mime-type

Of course, under the hood the small fildirutes are stored much like current attributes are. Some of them are also dynamically generated, and don't really exist, like the "mime-type" ones. It's just that the API is simplified so that everything is accessible as a fildirute. There is only one "open" function in the API, and just a plain "read" for data, and a "readdir" to find contained things. And "close". And that's it.