adding cursor type hiearchy.

We also use composing-cursor-t to implement a base method which packs a composing cursor arguments, hence we should be calling (call-next-method) in our packing code