Set version to 0.2
Add new files to make dist target
Return -ENOMEM in case of malloc failure
Split case folding and uppercase detection into separate files

Add 3 new files which each implements the following two functions:

 static inline bool str_contains_upper(const char *s);
 static inline char *str_fold(const char *s);

By default a glib based implementation is used, the other options
are still available via Makefile targets ascii and unicode-icu.
Set version to 0.1
Avoid C99 comments.
Fix memory leak in debug mode.
Extend introduction commentary.
Fix detection of upper case unicode characters.
Some code reformatting.
Do case folding instead of simply lower casing.
Change working directory from within new init callback.

This solves a problem when the file system is mounted via /etc/fstab.
Rename logp macro to log_print.
Implement utimens instead of utime as the latter is deprecated.
Respect supplementary user IDs of the calling process.

The supplementary groups are read from the /proc filesystem.
Wrap file system operations with {enter,leave}_user_context().
Implement {enter,leave}_user_context().
Fix a bug in ciopfs_link.
Force symlink creation in Makefile.
Cleanup config.mk file.
Call umask(0) on startup.