Refactor dataset metadata and introduce plot metadata.

Introduce plot metadata and currying in drawer.
Just noting that there's no such thing as passing a huge object since we're consistently passing references anyways.  That said, I'm not too against using the key for now.