Add OS X proxy icon to title bar

Fixes #1891.

Test Plan:

  * Opened Atom window in directory, verified directory icon shows up
  * Opened a file and verified icon changed
  * Right clicked icon, verified menu appears
  * Drag file to terminal and it pastes the file path (yay)
  * Opened a new Atom window and opened some files in that to make sure that
    it didn't change the original window

I didn't add any specs for this - advice welcome here. I also haven't tested
on Windows or Linux but it looks like `setRepresentedFilename` is a noop on
those platforms.
path -> proxyIconPath

Test plan:
Crossed fingers
Implement setDocumentEdited too

As requested by @philipgiuliani

Test Plan:
Opened an existing file and made a modification. The icon fades at the same
time the tab close button changes to a circle. Undo makes the icon opaque
again.
Don't use project path as fallback icon for item with no path

Stops the project folder icon appearing in places that don't make sense
like settings and new files.

Test Plan:

  * Opened settings and didn't see the project folder icon
  * Closed all tabs and saw the project folder icon
Add confirmation dialog to checkoutHead

There have been a few reports of files mysteriously going back to the
last version in the tree. My theory is that it is because of people
fat-fingering the Undo command because the default keyboard mapping is
too similar. This will at least prevent most accidental data loss.
Add config option for checkoutHead confirmation

Per the discussion with @kevinsawicki in #3168, I have added a config
option `editor.confirmCheckoutHead` that defaults to `true`. When the
`editor:checkout-head-revision` command is executed, a confirmation
dialog now shows that states which file is to be reverted and asks the
user to "Revert" or "Cancel". If the config option is set to `false`,
the old behavior, simply reverting without prompting, is used.

I also added tests to ensure that the confirmation dialog is displayed
or not in the right configurations.
Add a step to revert unsaved changes

I took the key part from PR #3183 and added it to the post-confirmation
flow.
Upgrade to bracket-matcher@0.54
Upgrade to archive-view@0.36
Upgrade to incompatible-packages@0.7
Add toShow matcher
Fix the status bar nested inline blocks.

They were 1 - 2px too low due to nesting inline-blocks.
Upgrade to grim 0.12.0
Upgrade deprecation-cop to add status item
Upgrade to language-sass@0.16
Upgrade text-buffer and atom-keymap for grim upgrade
Merge pull request #3169 from lee-dohm/ld-checkout-head

Add confirmation dialog to checkoutHead
Handle invisibles at the token level to fix char width measurement

Fixes #3188
Render correct classes on leading/trailing whitespace spans
Assign invisibles via config in editor-view-spec