Add NSColor#isVisible() extension method.

Adding it as a property pisses off the compiler for unknown reasons,
so it's a function.
Replace epsilon in putColorIfVisible with isVisible check.
Move view setup before action binding, per the rest of bindView.
bindView: Put a blank line between view init and action binding.
bindView: add action for setting the rule name on modification.
bindView: Set font for rule name.
bindView: Set foreground and background color for rule name.

If the background isn't visible, default to 50% of the background color
so the selected item color doesn't drown everything out.
reloadData: Set tableview background color on reload.
reloadData: reload the column names when the background color changes.

refreshColumnNames stubbed out for the time being.

Needed because the rules without a background color will need to be
updated -- might be doable by just iterating over the rows and setting
their background colors up again without reloading everything.
RuleTableCon: Trigger editing for row names on double-click.

Suspecting this might not be necessary...
reloadData observers: refresh entire row for changes.

Alternatively, maybe just refresh the name and column that was changed.
The name always needs to get updated, at least, since the colors and
style affect it.
bindView: Add underline formatting to names.

This one actually doesn't matter for Sublime Text since it doesn't
support underlines as one of the rule flags for a color scheme, but
TextMate does and therefore it's important.
UI: truncate rule names by ellipsizing the tail.
RuleTableCon: implement refreshColumnNames.

Currently just reloads data for all name column rows.
refreshColumnNames: check if scheme's defined.

Seems likely at this point that checking if the scheme is nil is sort
of not required because there's no real situation where it should
happen, but I made it optional and therefore I should be checking it
in places where it's not obviously defined.
QRuleFlag: implement Equatable protocol.
bindView: Takes NSView instead of NSControl.

This necessitated a, uh, weird addition in order to work around a
compiler bug. See the giant comment at the top of the file.
bindView: move name view binding into separate method.
bindView: move style button binding to separate method.

Also adds a global variable with the segment indices and flag for each
segment.
bindView: Test for bound views being the correct type.

Shouldn't be necessary but it seems like a paranoid good idea to ensure
that changes would be quickly noticed as wrong.