Rewrite of the entire legend documentation, including tidy ups of code and style to all things "legend".

First off - apologies for such a big PR.

This work represents several days effort in rationalising and extending the legend documentation throughout matplotlib. I've focused almost entirely on improving the documentation, but in the process I've also cleaned up the code and simplified some interfaces (in the interest of clearer documentation).

There are changes to some example files which may not seem relevant, but I've gone through the entire gallery to identify the necessary legend related plots, and as a result have removed some of the duplicates which shouldn't have been there in the first place.

**Important**:
I'd like to put an alternative perspective on the way we review this PR given how much effort this review will require. Instead of waiting for :+1:s - I'd like to put a deadline of 14 days (4th October 2013) to have any :-1:s, and provided any review actions are complete, either I, or some other kind soul, will merge this. I think this approach might work well for primarily documentation type changes and this is a good place to trial it out.

Thanks!