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
Load the default themes in safe mode
Fix indentation
Move coffeelint settings to external file

The motivation is for this is to allow `coffeelint` config to be shared by
`script/grunt coffeelint`, global `coffeelint` and inline linting via
`AtomLinter`.

Test Plan:

Made some deliberate lint errors then ran `script/grunt coffeelint` and
verified the output looked the same with and without this change.
Fixes unexecutable commands on win32 in BP

Signed-off-by: Luca Moser <moser.luca@gmail.com>
Merge pull request #3208 from XemsDoom/fix-win32-buffprocess

Fixes additional quotes on win32 in BufferedProcess
Merge pull request #3186 from maschs/ms-safeModeThemes

Load the default themes in safe mode
Allow any bundled theme when in safe mode

Check enabled names against the bundled names and ensure
one bundled UI and one bundled syntax theme are enabled,
defaulting to the dark themes when necessary.
Upgrade to language-sass@0.15
ignore no_unnecessary_fat_arrows too
Use grunt-coffeelint@0.0.13 instead of forked version

Test Plan:

```
$ ./script/grunt coffeelint
Running "coffeelint:src" (coffeelint) task
>> 80 files lint free.

Running "coffeelint:build" (coffeelint) task
>> 23 files lint free.

Running "coffeelint:test" (coffeelint) task
>> 40 files lint free.
Done, without errors.
```
Merge pull request #3218 from dmnd/coffeelint-config-file

Move coffeelint settings to external file
Upgrade to language-c@0.27
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.
Use beforeunload instead of unload

unload is asynchronous in Chrome 36 and so saving the state while
reloading may not happen before the state is read on the new render
process.