Python3 compatibility work for basestring type

This is the method described at http://stackoverflow.com/questions/4232111/stringtype-and-nonetype-in-python3-x
Renaming geom_hist to geom_histogram for consistency with R ggplot2.
remove duplicate black in color list

last PR fixed actual errors, but wasn't quite right.
updated README files to match change in histogram geom name
updating docs and examples to reflect histogram geom name change
add geom_tile layer.
fixed test_geom_histogram to test geom_histogram
Make themes work with a contextmanager

Adding themes was not sideeffect free, meaning that after you added
(or even instantiated a theme object) a theme all following plots
(even direct matplotlib plots) had their defaults altered.

This patch changes this so that themes add their rcParams to the
ggplot object during __radd__() [and not directly to
matplotlib.rcParams during __init__()] and during plotting a
matplotlib.rc_context() contextmanager is used with this rcParams.
Add matplotlib and xkcd themes

The xkcd theme uses the matplotlib plt.xkcd() to set the right
rcParams settings.

The matplotlib theme can be used to make the plot look like a
matplotlib plot or set (additional) rcParams.
Add example usages of themes
switch to 'six' module for python 2/3 compatibility
comment on the structure of legend dictionary
make the title of each legend from a variable name (not aes type)
update TODO: how to improve legends
hide borders around legends (like in R ggplot2)
remove colons before legend labels (like in R ggplot2)
allow string keys in size legend

=> __main__ test doesn't crash anymore
Merge pull request #64 from JanSchulz/theme_as_contextmanager

Themes as context manager
reverting to pre-theme contexts
Merge pull request #66 from astanin/feature/var-names-in-legends

Feature: var names in legends