allow nested properties in result method

Enables retrieving the result of deeply nested properties/methods. For example,
```
    var obj = { foo: { bar: { baz: 'biz' } } };
    _.result(obj, 'foo.bar.baz') // returns 'biz'
    _.result(obj, 'foo.baz') // returns undefined
```