Added ['style']['markersize'] to utils.get_marker_style.

For renderers that want high-level information, 'markersize' would be a
useful parameter. Otherwise, if renderers want a simple size in points,
it has to use the affine transform and the figure's dpi to figure it
out.
Change `draw_line` and `draw_markers` to 'draw_marked_line`.

Exporter lets the base renderer farm out the appropriate calls to
`draw_markers` and `draw_lines`. Renderer's can reimplement the
`draw_marked_line` method if they wish to keep the line and marker
information bundled together.

If a renderer doesn't wish to do so, they should NOT reimplement the
`draw_marked_line` function, instead reimplementing both `draw_line` and
`draw_markers`.
Removed `lines` and `markers` variables from draw_line in exporter.

If there is no `dasharray` for a Line2D obj, the `linestyle` dict is set
to `None`. Same goes when `marker` is not populated.

This way, the `base` renderer uses `linestyle` and `markerstyle` in
`draw_marked_line` to decide which or both of the `draw_line` and
`draw_markers` methods to call.
Changed: dsharray - dasharray.
Added `label` to all renderer's `draw_marker` and `draw_line` calls.

Running `nosetests -w tests` checks out now.
Added a `draw_legend` context manager.

To ignore commands from the exporter, renderers can check the following
attribute from the Renderer class from which they are a subclass:

`if self._current_legend is not None`

Files Changed:
==============

exporter.py
-----------
- added `crawl_legend`, similar to other `crawl_*` methods
- within `crawl_ax`, renderer's `draw_legend` is now called

base.py
-------
- added `draw_legend`, a context manager
- added `open_legend`, to be reimplemented by subclasses
- added `close_legend`, to be reimplemented by subclasses

utils.py
--------
- added `get_legend_properties`, just returns handles and labels

fake_renderer.py
----------------
- updated self.output to include opening and closing legends

test_basic.py
-------------
- updated comparison strings to include opening and closing legends
Changed logic for legends.

Files Effected:
===============

exporter.py
-----------

- Legend context only opened if `legend is not None`
- Legend contents drawn only if `legend.get_visible()`

test_basic.py
-------------

- Added legend test where legend is not visible. This causes the legend
context to open and information to be passed to renderers. However, no
SVG draw commands are issued because nothing should be drawn.

utils.py
--------

- Passes both `ax` and `legend` to `get_legend_properties` and now
includes a `visible` key in the `props` dict.
Added a `pass` keyword in methods that are to be reimplemented in base.
recursive drawing of legend
recursive drawing of legend
Limiting legend drawing to _legend_box and legendPatch to vaoid duplicating objects
Pull out recursive legend item search into a utility function
PEP8 and better error handling
more PEP8
test for legend
Simplify legend marker test
Merge pull request #19 from jmeppley/legenddots2

Legend fix