Initial implementation of gradient fills.

Minor change to pattern fill interface. Now can use pattern objects
instead of being forced to define a reference prior to applying a
pattern. Still internally does this but removes a step for the user.