[API Review]Dataset metadata

Introduce plot metadata and currying in drawer.
Also, will this metadata be a reference to a variable or will it generate per call?  If it generates per call, then rename the variable name.  If it returns a simple reference, then the user now accidentally has power over the plotMetadata (unless you clone), which I thought was the point of userMetadata