Use public getters instead of properties in pane-spec
Start adding event subscription methods to pane

This branch uses EventKit, an ultra-simple library for implementing
events. The object implementing the methods maintains its own emitter
object rather than doing a mixin like Emissary encourages. This will
make it easier for us to deprecate ::on on the object itself. Unlike
emissary, the EventKit Emitter implements a super minimalistic API that
only allows one value to be emitted and always returns a Disposable
from subscriptions.
Add Pane::onDidMoveItem()
Add spec for onDidRemoveItem observers when moving items to other panes
Add Pane::onDidActivate
Add Pane::onWillDestroyItem()
Add PaneContainer::onDidChangeActivePane
Add Pane::onDidChangeActive()
Subscribe with new event methods in PaneView
Add Pane::observeActive and ::observeActiveItem

These have behavior semantics, invoking the observer immediately with
the current value of the observed property.
Don’t invoke ::onDidChangeActivePane events unless it really changes
Don’t emit ::onDidChangeActiveItem events unless it really changes
Use Pane::setActiveItem internally so observers are invoked
:lipstick:
Handle objects in subscriptions instead of multiple args
Use getActiveItem getter in pane-view-spec
Use Array instead of Sequence for Pane::items
Don’t rely on Sequences to reparent the last child
Don’t use Sequence in PaneAxis
Add child event methods to PaneAxis

This eliminates our reliance on the Sequence object for informing us
of changes