Fix/change path::with_tilde

We now leave a potential trailing slash in the result.

This fixes the issue of the missing slash in ⌘T — while I normally prefer the slash to be stripped, I think path::with_tilde should be an exception since effectively it is just replacing the path prefix, it shouldn’t do any real processing (although we do actually normalize the string).

Also fix a bug where we would use tilde for paths pointing to a user folder for a user with current user’s name as prefix.
Remove compatibility checks

Since we now require 10.7 we don’t need all of this. Keeping it around is just noise that can lead to confusion about code paths.
Show alert if readlink fails

I am seeing crash reports from resolve_links and I can’t think of any other reason for this crash, than readlink() returning a value which is neither -1 nor in the range [0..len].
Use NSDictionary instead of retained_image_t

The main reason for this is that we wish to resize the images when the font is changed. This can now be done in the gutterImage: method.
Change how we render gutter images

Previously we would lock focus on our source image. This is bad because we do rasterization (to a fixed pixel format / density) and it (potentially) destroys / mutates the source image.

We now use a second (new) image for the compositing. This is still not ideal, as this second image still is “off screen” so lack the proper graphics context during rendering. A better approach might be to create a CGImage using the graphics context and use that as an (image) mask and do a stroke, but this would require the images to be changed and I am not really certain it will work.
Remove automatic resizing from gutter view

There is a somewhat frequent crash caused by infinite “did resize” notifications. It’s unclear exactly why this happens, but basically a subview shouldn’t resize itself unless asked, and it shouldn’t resize siblings either.

We now have an explicit sizeToFit which takes care of sizing the gutter view. It is the responsibility of the owner (of this gutter view) to resize the gutter’s parent scroll view and any siblings that may need adjustment (after calling sizeToFit).

Additionally it is the responsibility of the owner to call sizeToFit when there is a chance the gutter view size needs updating. Generally though, the owner should know, as it is the data source for everything.
Update gutter images
Remove pointless indirection
Limit amount of refresh

In theory there should be no reason to redraw more than the divider line and the gutter, after changing gutter styles.
OakDocumentView now manage gutter’s size
Gutter: Don’t draw same row rectangle twice

Incase the last line of a file is folded (has no newline) then the gutter would first receive a row record for the line starting this fold, and then when querying for the next row, it would get the last line of the layout, this had a different line number but shared same coordinates as the previously rendered line, so the gutter would draw on top of that.

Closes issue #256.
Don’t refresh gutter from OakTextView

I suspect that this was added because some operations were not properly detected, though the only thing I can find, that doesn’t properly update the gutter, is when deleting folded code in a way that doesn’t change the bounds of the text view. This code however does not address that issue.
Update configure script

1. Default SDK set to 10.8 (since we now use subscript operators).
3. Version is tagged (by default) with “-git”. Not too happy about this, but I need a way to filter out “build from source” when analyzing crashes and similar. I’ll revise the solution later.
2. Revision only taken from api.textmate.org (no git fallback).
4. Only multimarkdown is a valid markdown compiler (due to recent changes in `bin/gen_html`).
Update dialog submodule

Renamed the DialogPopupMenuTarget class to avoid a run-time warning logged in Console.

Users will sometimes quote stuff from Console in bug reports, so let’s cut down the noise.
Use regular font for key equivalent control

Previously we used the fixed width font, not really sure why.
Checkin release notes
Process working directory not always setup

This is a fairly subtle bug: We were implicitly creating a temporary std::string object and requesting c_str from this object.

This C string’s lifetime was that of the temporary std::string, and as we did a lot of std::string creation in the following line, with the new libc++, there was a good chance that the temporary string buffer would be re-used and so, our working directory would be set to a bogus value.

This closes issue #329.
Incorporated scalable icons.
Revert "Don’t refresh gutter from OakTextView"

Turns out this is required in the situation where the document occupy less space than the visible document rect.

In this case, inserting new lines will not resize the text view, since it has been artificially enlarged to fit the visible document rect, therefore the gutter view will not update properly when inserting new lines.

I think there is a better solution than have the text view refresh the gutter, reverting is just meant as a quick fix.

This reverts commit 4e2ae3c50879b44568b4d7a6371ae604290856e0.
fixup! Incorporated scalable icons.