Added support for legends. This anticipates changes to mplexporter.

There's an open PR for the mplexporter project to support legend
rendering in high-level plotting renderers, like plotly. These changes
prepare for that.
Added plotly_objs and plotly_words modules for better oop code.

Each portion of the plotly figure is now represented by an object which
inherit from either the standard `list` or `dict` classes.

The two major classes are the PlotlyDict and the PlotlyList.
Implementation of these objects allows for a more compartmentalized
approach that will be more robust to future changes. See the
documentation for more explanation.
Updated renderer.py, tools.py, and nosetests to follow plotly_objs add.

Code in renderer was rewritten to conform to the changes in adding the
more oop-leaning code added with plotly_objs.

Organization for exporting an mpl figure is compartmentalized as
follows:

(1) mplexporter's `Exporter` crawls the mpl figure for information and
passes draw commands to `PlotlyRenderer`.

(2) `PlotlyRenderer` along with the `tools` module can translate from
mpl language to plotly language. The `PlotlyRenderer` then begins to
fill the objects defined in plotly_objects, which are basically just
enhanced `list`s and `dict`s.

(3) The objects from plotly_objects are aware of how their formatting
should look and can `check` themselves for invalid keys, `clean`
themselves of `None` entries, and `repair` certain common key and value
errors. They also have the ability to `strip` themselves of superflous
style information.
Updated mplexporter submodule, now included high-level legend support.
Merge branch 'legends' into add_legends
Quick commit for add legends.
Updated plotly_objs and plotly_words modules.

The plotly_objs module now only includes definitions for `PlotlyDict`
and `PlotlyList`. All `PlotlyDict` objects are differentiated by passing
a `kind=*` keyword argument.

The plotly_words module consolidated all information for the different
`PlotlyDict` objects into one dictionary called `INFO`.
Merge branch 'exp' into pre_master

Adding plotly_objs and plotly_words to normal operation. This changes a
lot of syntax, but functionality stays the same at high-level usage.
Merge branch 'add_legends' into pre_master

Conflicts:
	matplotlylib/renderer.py

Conflicts resolved. Added minimal legend support to pre_master branch.
Changed files in response to unexpected results in NB.

Nothing major, just some small tweaks to make sure that the notebook
still works.