Moved the model logic for the tab bar from PLTabViewController instance variables to a new PLTabBar class.

The PLTabBar class manages the association between tab bar items and view controllers with optional tracking areas for each tab item. Moved the PLTabBarItemLayer from the PLTabBarView files to the PLTabBar files.
Resolved a cyclic dependency between the Python Introspector plugin and Liasis.

The plugin now depends on LiasisKit.
Several fixes in the file browser.

Exposed the PLFileBrowserItem initializer methods for proper type checking of the model object.
Removed mutableChildNodes and moved its logic into childNodes in PLFileBrowserItem. This reduces the number of calls to these methods by the tree controller.
The file browser’s tree controller no longer tries to avoid having no selection.
The file browser now displays images alongside the item name.

Added an NSTextFieldCell subclass, PLFileBrowserImageAndTextCell, that is used for the outline view. The directory popup button sets the image of each item in the menu.
Set the line truncation mode for the file browser.
The tab items' colors are now properly updated when the theme changes.
Moved window management logic out of LiasisAppDelegate to a new PLWindowController class.

PLWindowController manages the tab view/file browser split view. LiasisAppDelegate now simply creates and tracks the application’s PLWindowControllers.
Updated the PLFileBrowserViewController openDocumentWithURL:error: method to return a BOOL representing if the operation was successful. PLWindowController now accepts opening actions from the app delegate and forwards them to the file browser view controller. This change allows the window controller to notify the app delegate if the operation was successful and is consistent with Cocoa signatures for methods that may return an error.
Translated all new, close, and save actions to the menu bar from key equivalents in PLTabViewController.

The LiasisAppDelegate binds each of these menu items to its own methods that are forwarded to the key window, which forwards the action to its tab view controller.
Added support for multiple windows.

Moved logic for loading bundles back to LiasisAppDelegate. PLAddOnManager now has the defaultAddOnBundle property rather than PLTabViewController. This allows LiasisAppDelegate to manage loading and setting the default bundle on application launch.
Changed keyboard bindings: cmd-n for new window and cmd-t for new tab (cmd-shift-t is now used to show fonts).
Closing a window with only one tab will close the window.
All themeable objects now update their theme and font on initialization rather than relying on LiasisAppDelegate to post these changes on application launch. This was needed so that new windows use the current theme and font without requiring the changes sent again.
Fixed a memory leak in PLEditorViewController.

The controller now replaces its text storage with a PLTextStorage object on the autorelease pool.
When the application is launched by opening a file, do not add an empty tab as well.

LiasisAppDelegate only adds an empty tab if the application was not launched with one of the open file delegate methods.
Menu items in the main menu are now validated by the app delegate.

LiasisAppDelegate is now a NSMenuDelegate and implements the validateMenuItem: method to validate menu items based on the key window.