Add support for all gradient types and multiple color stops