Make PlotlyDict magic.
Make PlotlyDict magic.

Auto-complete sub-attrs. Keep things converted to graph objs *always*.

`__setitem__` is again the most important thing to look at!

Note that `__missing__` isn’t actually inherited, but exists in
`defaultdict`. Instead of inheriting from *that*, we just copy the idea.
Basically, this gets called when an attr or key can’t be found on the
object. It’s what does the auto-creation of things that don’t exist yet.

Also note the `__dir__` function which allows dynamic listing of
*possible* attributes on PlotlyDict objects. This is especially nice in
IPython Notebooks where you can just hit `TAB`.
plotly/plotly.py,plotly/python-api,plotly/python-api,plotly/plotly.py,plotly/python-api,plotly/plotly.py