events: add a fast path for properties() + add a new cache for discovering on_* handlers on widget classes
text: fix 1px wide black bar