Attach, show and hide pane item views with native DOM APIs

We continue to invoke SpacePen attach hooks on any shim wrappers
for backward compatibility, but SpacePen wrappers are no longer required
for attoch/hide/show as they were previously. Next: removal.
Use native DOM APIs to remove pane item views
:lipstick: Remove unnecessary conditional

`mkdir -p` is an idempotent operation.
Merge pull request #3750 from mlloreda/patch-1

:lipstick: Remove unnecessary conditional
Delegate pane focus methods from workspace to pane container

Fixes #3754
Merge pull request #3721 from atom/ns-pure-custom-element-pane-items

Allow pure custom element pane item views
:lipstick: spec description
Support inline listeners

This extends the command registry to support listeners registered on
individual elements in addition to selectors. The analogy is inline
styles vs selector-based styles. I’m hoping this will be the foundation
of integrating cleanly with legacy commands registered via our
jQuery::command extension.
Integrate jQuery::on and ::trigger with command registry dispatch
:lipstick:
Force native event handler to be registered for activation commands

We use onWillDispatch internally to manage activation commands,
activating packages *before* the activation command starts dispatching.
This means we need to explicitly tell the command registry to subscribe
to the command in question.
Remove logging
:lipstick: spec
Upgrade keymap to fix simulated command dispatch for detached nodes
Forward preventDefault to original event
Remove unused __handledByCommandRegistry property
Add workspace commands via command registry again

Now that legacy jQuery command listeners are properly integrated with
the command registry, these commands can be moved back.
Merge pull request #3734 from atom/ns-commands-backward-compatibility

Make command registry backward compatible with jQuery::on and ::trigger
Add TextEditorElement and make TextEditorView a wrapper around it

This is the next step on converting all internal views to custom
elements instead of using SpacePen. The TextEditorElement instances
are associated with ::__spacePenView fields that are used for supporting
legacy access paths via atom.workspaceView.
Destroy model if TextEditorView is explicitly removed for compatibility