Flatten nested objects to a single level hash in dot notation