Bundle Editor: allow selection of disabled items

Previously disabled items could not be selected, and hence not be re-enabled.
Fix bundle menu items' appearance in the Help menu
Move border drawing to OakDocumentView

This allows the border to appear properly when scrolling (with a multitouch device) bounces past the end of the content.
Add text::is_east_asian_width

This checks if the character needs to be counted as double-width (for soft wrap and similar).

I used the following script to generate the tables, it should be improved to collapse the ranges:

    #!/usr/bin/ruby

    fixed, start, stop = [ ], [ ], [ ]
    open('|curl -Ls http://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt') do |io|
      io.grep(/^([0-9A-F]+)(?:..([0-9A-F]+))?;[A-Za-z]*W/) do
        if $2
          start << "0x#$1"
          stop << "0x#$2"
        else
          fixed << "0x#$1"
        end
      end
    end
    puts "static uint32_t Fixed[]      = { #{fixed.join(', ')} };\n"
    puts "static uint32_t RangeBegin[] = { #{start.join(', ')} };\n"
    puts "static uint32_t RangeEnd[]   = { #{stop.join(', ')} };\n"
Support East Asian Width

There is a bunch of functions that deal with the logical column count and these now all count code points with the “east asian width” (unicode) property set as two columns.

This closes issue #206.
Redefine definition of paragraph

When we need to work on a paragraph (reflow, unwrap, select, etc.) we now extend upward until we see a blank line, and likewise move downward until there is a blank line.

This is related to issue #154.
fixup! Fix trailing whitespace in text reformat

We still got the extra (double) newline after the paragraph.
fixup! Represent font size using a CGFloat
Restructure code
Include high resolution I-Beam cursor
Expose (effective) wrap column from layout_t
Use wrap column from layout

This closes issue #158.
Fix copy to find/replace clipboard with non-standard selections

Previously it would place either the column or discontinuous selection on the find/replace clipboard, which wasn’t useful.

Now it only places the “first” range (of a discontinuous) selection on the clipboard, or first row of a column selection.
Support loading @2x image assets

Untested, but we now use imageForResource: (10.7) instead of constructing an absolute file path, so the system should take care of finding @2x assets.
Remove unused NSImage category method
Select paragraph now bound to ⌃⌥P
Cache image resources

This was also done prior to commit 806cb44. I just assumed that now that we are back using the system’s named image stuff, we would benefit from their cache, but clearly we are not (especially file browser seemed sluggish because of (re)loading the file type images).
Tweak default variables in Preferences

These are (now) all disabled, so it’s mainly just for guidance.
Remove TS_WARN since we do have tests

Sort of a fixup! to 2c6a847 (which added child selectors).
Strip the numeric keypad flag for key events

This means pressing e.g. ⌘/ (using the slash on the numeric keypad) will still work to toggle comments.

It also means that we can no longer bind specifically to the numeric keypad keys, but I don’t think anyone actually does that (given that few have numeric keypads).

The ideal solution would be to first do a literal check and then, if there was no match and the key event had the numeric keypad flag set, do a test with this flag removed, but that would change the simple string compare we presently use plus the easy caching and binary search of finding the item that matches a key event, i.e. it would add complexity to the code with no known argument in favor of this flexibility.