fixed keyboard equivalents for shift-line-up/down
text & stylesheet now much less likely to explode

- the StyleMixin now handles style-ish kwargs
- calling text() with style=False or style=“stylename” now does the
right thing regardless of the text’s xml-ness
- removed the lighter/heavier kwargs (which honestly had questionable
real-world use anyway). they still exist as methods on Font objects
though
- the text() command does a better of supporting bezier styling args
when outline=True
Bezier and PenMixin now cooperating

- the mixin was actually *always* failing to set its properties due to
some ill-considered short circuiting-via-exception logic
better kwarg pooling across grob mixins

- the old kwargs class attr can now go away since each user-serviceable
grob now assembles its list of valid options by concatenating the
mixins’ opts attrs
- now using a metaclass (of all things) to assemble the options &
attr-inheritance lists (which feels marginally less hacky than the
_merge_state memoization dance)
- inherit() and validate() now work with these lists (though validate
could really stand to be used more frequently by the ctx)