cleaned up event handlers for PieceView

turns out we've been doing it wrong this whole time. you don't need an
event handler per listener, just one with all the listeners.