linear gradient working in the demo. Not so elegant -- really need to reconsider the classes and structs - are the classes even necessary?

maybe we can just do conversions in place within the nvg context functions.