Solution to #71

- add a keyword argument to PlotlyList.update() called immutable (with default =False)
- leave PlotlyDict.update() as is in master branch

`fig['data'].update(some_dict, immutable=True)` creates list of copies
of `some_dict` before calling PlotlyDict.update().

Thus, further updates in `fig['data']` can be applied trace-wise e.g.

`fig['data'][0].update(some_other_dict) only updates the first trace.
more efficient list replication in PlotlyList.update()
Changed to make copies by default. Otherwise, just readability updates.
set make_copies=False by default, change doc string
Merge pull request #78 from plotly/iss71-etienne-rebased

Iss71 etienne rebased