add support for multi-geom layers

This is done by making the `layer()` function return a `Vector{Layer}`.

All the `add_plot_element(::Layer, element)` methods are replaced with equivalent `add_plot_element(::Vector{Layer}, element)` which broadcasts the element to each Layer. The exception is when adding a geom, in which case a copy of the last layer in the vector is added with the requested geom.

That is, `layer()` returns a vector of layers, which are all identical except for their geoms.  `plot()` now accepts a `Vector{Layer}` as a valid element type, appending it to the internal vector of layers.

Fixes #317