Updated the PLAutocompleteViewController to adhere to the updated PLThemeable protocol.

The updateThemeManager method is currently empty.
PLThemeManager now provides a method to return the selection gradient that is used by PLOutlineView.

The logic that was used in highlightSelectionInClipRect to determine the selection gradient in PLOutlineView is moved to PLThemeManager in the selectionGradient method. The PLOutlineView no longer needs a selectionHighlightColor property with this change.
The autocomplete view now uses a custom selection gradient.

Added a NSTableView subclass PLTableView that implements the highlightSelectionInClipRect: method to draw a gradient in the highlighted row. The PLAutocompleteViewController now uses this as its table view and implements the tableView:willDisplayCell:forTableColumn:row method in order to control highlighting behavior and set the text color.
Removed offset used to define the selection rect.

The selection in PLTableView now highlights the entire row without any empty edges.
Added a spacing buffer below the last entry in the autocomplete view.

This buffer is equal to the intercell spacing in the table view.
Removed the unnecessary themeManager instance variable from PLAutocompleteViewController.
Added a shadow to the autocomplete view.

The PLEditorViewController view and the PLAutocompleteViewController view are now both core animation layer based. The shadow offset and blur radius for the autocomplete view are set with the xib file, while the shadow opacity is set in the PLAutocompleteViewController initWithNibName:bundle method.
The PLAutocompleteViewController now sets its background color in the updateThemeManager method.

PLEditorViewController sends the updateThemeManager message in its own implementation of the method.
Added a log message in PLLineNumberView when trying to set its client to a class other than a NSTextView or subclass.
PLEditorViewController now identifies when the cursor moves over a closing brace.

Implemented the textView:willChangeSelectionFromCharacterRange:toCharacterRange delegate method, which identifies (and currently logs) when the insertion point moves over a closing brace.
PLFormatter now exposes a method to return the character index for a matching open bracket.

This method characterIndexForNextOpenBracket:fromIndex simply returns the results from characterIndexForMatchingBracket().
PLEditorViewController now animates a highlight box over a matching bracket.

This commit introduces several changes:
  1) PLEditorViewController.xib now specifies the NSTextView Text Editor View as a Core Animation Layer
  2) PLEditorViewController has an instance variable bracketHighlightLayer that is a CALayer object initialized with a yellow background color and assigned as a sublayer of the textEditorView.
  3) Upon moving the cursor over a closing bracket, the PLTextEditorView identifies the rect for the glyph of the matching opening bracket.
  4) The bracketHighlightLayer is moved to the open bracket glyph rect and its opacity is animated to pulse.
Only the NSTextView of the PLEditorViewController is specified as core animation layer in the .xib file.
PLFormatter characterIndexForNextOpenBracket:fromIndex now simply returns the result from characterIndexForNextOpenBracket().

This fixes the issue where open brackets on the current line were not matched.
Added a shadow to the bracket highlight layer.
The bracket highlight layer is now a CATextLayer that includes the open bracket as its text.
The highlight bracket animation now increases in size in addition to the previous opacity change.
Added rounded corners to the bracket highlight animation.
Prevented a movement animation when the highlight bracket layer frame was adjusted.

This is accomplished by wrapping the setFrame: message in a CATransaction that disables transactions.
In PLFormatter, the characterIndexForNextOpenBracket() function is now the class method characterIndexForNextOpenBracket:fromIndex.

Previously, the class method simply returned the results from the function so it was unnecessary to have both.