Allow non-inplace option for `ndframe.update()`
#### Code Sample, a copy-pastable example if possible

```python
import pandas as pd

s = pd.Series([1, 2, 3, 4, 5])
t = pd.Series([10, 11, 12], index=range(3, 6))

print(s.update(t).reindex([1, 2, 3, 4, 5]))
```
#### Problem description

Obviously the previous doesn't work. `s.update(t)` is executed inplace, and doesn't return anything. I see no reasons why one shouldn't be able to call `update` and get a new object (for example to allow method chaining).

The easiest way of implementing this is by allowing a parameter that makes the function return the updated object:

```python
print(s.update(t, inplace=False).reindex([1, 2, 3, 4, 5]))
```

**I know there is already a plan about deprecating `inplace`, but I'm not sure it involves `update`. I guess that `update` was designed to be similar to the same method of a dict object.**

**Update**
Closed as it was solved in https://github.com/pandas-dev/pandas/issues/10730
