Allow hierarchical set/get

for example things like: set('settings.userAgent', '...')
Merge branch 'set-key' into devel