[connman] inotify: add user_data pointer to inotify callback

It's useful to have a callback data pointer to handle events from
multiple locations in the same callback. Any memory allocated for
the pointer should be released in a GDestroyNotify callback which
can be given as a registration parameter along with the user data
pointer.
[connman] storage: cache service and provider information

Instead of browsing STORAGEDIR every time connman_storage_get_services
or connman_storage_get_providers is called, read directory contents
once into a cache that is updated based on inotify events.
[connman] storage: Settings file read caching

Implemented a read cache for settings files, so that files are not needlessly
read and parsed every time some configuration values is needed. To keep things
simple, any modification of the file on disk will drop the corresponding cache
entry and on next access the file will be re-read.

In order for caching to work, replaced g_key_file_free() with g_key_file_unref()
overall.
[connman] storage: Debug routines

Added debug functions to print out inotify events and
current service list contents.