WIP: First stab at custom element for panes

Still need to create a SpacePen shim for access via `atom.workspaceView`
property so we’re backward compatible with packages, but it basically
works.
Handle pane commands on PaneElement via command registry
Keep existing PaneView SpacePen API working as before

We will eventually deprecate all access to views via
`atom.workspaceView`, which is the only way to get a reference to
instances of PaneView. Draining the swamp!
Use Pane::onDidAddItem instead of ::observeItems

The former includes the index at which the item was added and the latter
does not.
Remove Pane::getViewClass as we now use a view provider
Restore $.fn.element property

We define element in certain space-pen views, but this makes it
available for all jQuery objects. Can’t remove it from the prototype.
:lipstick:
Upgrade autosave to fix specs
Add PaneAxisElement
Upgrade space-pen for simulated dom attachment bug fix
Only dispose PaneElement subscriptions when pane is destroyed

Not when the element is detached, because it might be reattached.
Don’t emit repeated attached events for the same PaneView
Remove the old root view properly
Remove stray log
Move shell command installation to workspace model
Move PaneContainerView::confirmClose to the model layer
Mock out document.title with Object.defineProperty


Previously the WorkspaceView::setTitle was mocked in specs to prevent
the title from changing. But I would like to move the title update logic
without breaking assertions, so now we can assert directly on
document.title.
Maintain document.title in the workspace model, not the view
Update document edited status in workspace model

This also fixes a previous oversight where the status wasn’t updated
when switching between pane items with different modified status.
Add WorkspaceElement