Fix memory leak in GitRepository and convert to CompositeDisposables

We were calling @unsubscribe with the TextBuffer, which previously
unsubscribed from that object. The problem is that we were no longer
subscribing to that object directly, but only adding subscriptions to
that object. This caused us to never unsubscribe from buffers.
:arrow_up: space-pen to call cleanData in callRemoveHooks to stop leaks
Only SpacePen callRemoveHooks on removed pane item view if destroyed
Trigger editor:will-be-removed from SpacePen shim, not component

By the time the component is getting unmounted, we have already called
remove hooks on the SpacePen shim so subscriptions to the event have
been removed.
Merge pull request #4258 from atom/ns-fix-memory-leaks

Fix memory leaks introduced by changes for API freeze