Implement `flattenObject(obj)` returning a flat object whose keys are dot-joined paths to each non-object value.
Run your code to see results.