Introduce gg_context and get geom_line working

- Create gg_context a separate context management class, it also
  minimises the clutter in `ggplot.draw`.
- gg_warning is now manages the printed warning messages. The
  context takes cares of when to reset the messages
- Use 'zorder' to make sure that geoms are displayed in the correct
  order.