Fix CommandRegistry::get/restoreSnapshot

I didn’t realize that deepClone was not handling functions correctly.
I’ve implemented clone manually to the exact depth needed instead.
Break command dispatch as soon as currentTarget is null
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