Handle entity equality comparison against non-matching types

Signed-off-by: martin f. krafft <madduck@madduck.net>
Handle entity equality comparison against non-matching types

Signed-off-by: martin f. krafft <madduck@madduck.net>
Compose invalid class name character error message in exception

Signed-off-by: martin f. krafft <madduck@madduck.net>
Fix typo in NodeNotFound exception

Signed-off-by: martin f. krafft <madduck@madduck.net>
Disallow overlapping of nodes and classes URIs

Signed-off-by: martin f. krafft <madduck@madduck.net>
Skip all directories with leading dots

Signed-off-by: martin f. krafft <madduck@madduck.net>
Raise an error if os.walk encounters a problem

Signed-off-by: martin f. krafft <madduck@madduck.net>
Set entity name to full URI

Signed-off-by: martin f. krafft <madduck@madduck.net>
Update of operations document

Signed-off-by: martin f. krafft <madduck@madduck.net>
Provide Entity.as_dict()

Signed-off-by: martin f. krafft <madduck@madduck.net>
Add printf debugging to storage base

Signed-off-by: martin f. krafft <madduck@madduck.net>
Revamp storage classes, add node subdirs and caching

This is a mammoth commit, sorry about that. In trying to add node subdir
support, I ended up refactoring a lot of the logic from yaml_fs into the
storage base class, and then caching was added along the way, I almost
didn't notice. ;)

Signed-off-by: martin f. krafft <madduck@madduck.net>