First draft spread.

Misc performance fixes.
BROKEN: Spread draws values across categories.
Spread by levels (vector style)
More work on categories