Refactor dataset metadata and introduce plot metadata.

Introduce plot metadata and currying in drawer.
agree with Brandon, since the plotMetadata is entirely generated within Plottable we should have an interface that defines what can be in it