Fixed vertical position of legend in plot

Fixed issues:
- The AnchoredOffsetbox was originally set to at add loc=6 which
  vertically centers the legend in the plot, creating legends that were
  too high or too low compared to the upper plot edge.
- legends with many items would often overlap due to the spacing between
  separate legends being constant
Legend supports multiple attributes per line

As shown in https://github.com/yhat/ggplot/issues/304 and
https://github.com/yhat/ggplot/issues/89 the current legend is drawn
once per aesthetic (outside of x and y). This behaviour creates
duplicate information when we use for example color and fill along the
same variable.

I've reworked the legend to group information per variable and display
for example one line showing both shape, color and alpha information.

The reworked legend also address: https://github.com/yhat/ggplot/issues/273.

New Features
- Group legend information per variable
- Implement alpha
- Better position legend (The vertical position was centered according
  to the top of the frame before)
- Fixed issue with legend overlapping
- Fixed problem with legend inventing numeric values. For numeric
  columns with less than 5 unique values, the current legend would
  interpolate them to write 5 continuous values

Things that doesn't work:
- No custom rearrangement (say, making swapping line 1 and 2 in the
  legend)
- Legend might be longer than plot. Currently it breaks in to two
  columns, but if the plot is drawn smaller then I can't see a way to
  adjust the legend to this behaviour

Changes:
- I've personally had the problem that the legend would interpolate
  between numeric values even when there were less than 5 unique values
  in the data. I've changed this behaviour so the legend puts a label
  for every value when there are less than 8. Currently the color scheme
  in this case is discrete, but I'm not convinced this is the best
  solution. I generally think distinguishing between discrete and
  continuous data types makes sense, but for some continuous cases we
  might want to use the set of values that are present in the data
  instead of interpolating. I'm unsure whether the way I've changed this
  is the right way to do it, so I welcome comments on this matter.
Fixed travis build for python 3.4
Merge pull request #327 from arnfred/legend-rework

Legend rework