Add ability to set custom domain and range of plot

Add ability to set custom domain and range of a plot.  This is done by setting the `domain` and `range` options.

Related: #108
Do you think there is a benefit to allowing these to be functions or strings? With functions we could pass the `@data` member and with strings we could call a method on the class itself.