[connman] storage: add init and cleanup routines

In preparation to storage optimization, add storage init and cleanup
routines that are to be called before storage is used.
[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.
[connman] inotify: fix buffer size

Fix buffer to which inotify events are read to be large enough,
according to inotify(7) manual page.
[connman] inotify: refcount struct connman_inotify

When processing inotify events, callbacks may unregister which can
result in freeing the related connman_inotify struct. However that
struct is referenced in the loop which processes the events read in.

Implement reference counting to make sure the structure is available
while events are being processed.
Merge pull request #159 from hmallat/storage-optimization

Storage optimization