Changed style of tabs in the tab bar.

Each tab is now a layer-backed NSView with sublayers used to mask it and create a shadow effect. The tab has angled sides and rounded corners. Its button is replaced with a CALayer that emulates a button and has a modified style from the previous button.
Closing tabs now selects the correct tab as the next active tab.

Updated PLTabViewController to select the tab to the right when closing one. If closing the last tab, select the previous tab.
Fixed a memory leak in PLTabBarItemView.

The CGColorRef used to stroke the close button layer was not released in the createCloseButtonLayer method.
Cleanup in PLTabViewController method.

Deleted commented out code and unused methods from the interface file. Moved code in the addViewController:forTabItem: method into the addTabWithAddOn:withDocument: method and removed the former.
Tab items are now always stacked with the leftmost on top, while the active tab remains on top of all.

In the setActiveTab: method of PLTabBarView, reorder all tabs to get this effect and then place the active tab on top.
Merge branch 'feature-new_tabs' into develop

The merging branch changes the style of the tab items. Tabs now have angled sides, a small shadow, and rounded corners. They are now layer-backed views.
Tab bar items are now draggable.

In PLTabBarView, implemented the mouseDown:, mouseUp:, and mouseDragged: methods to detect when a drag starts, to move the tab item by the NSEvent deltaX amounter, and stop a drag. When a drag stops, the tabs are reordered using the calculateTabViewItemsInFrame: method. PLTabBarView has two new instance variables to keep track of the drag information: the item being dragged (draggingItem) and its initial x-origin (draggingItemOriginX).
Tab items are now draggable even when the cursor moves out of the tab bar.

Instead of using mouseDown, mouseUp, and mouseDragged, the new method uses only mouseDown and controls a mouse-tracking loop until mouseUp.
Fixed an issue in reordering tabs after dragging.

Tabs now reorder correctly after mouse down. The enumeration directions after mouse up were reversed.
Improved efficiency when searching for the tab to replace on mouse up.

The enumeration methods used in mouseDown: now stop after passing the index outside of the their appropriate search set.
Tab items now reorder while dragging one along the tab bar.

In the mouse-tracking loop in PLTabBarView, continuously determine if the dragging tab has passed another tab. If so, reorder it to the new position and recalculate the layout. PLTabBarView now has a hiddenTabItem instance variable that is never drawn, but is inserted into tabBarItems so that the positions are calculated correctly, leaving an empty gap for the one being dragged.
Added a buffer region in the center of tabs before triggering a replacement.

If moving right, the right edge of the dragging tab has to pass 0.55 * the width of a tab. If moving left, the left edge of the dragging tab has to pass 0.45 * the width of the tab.
Updated documentation and and minor cleanup in PLTabBarView.
Merge branch 'feature-drag_tabs' into develop

The merging branch implements draggable tabs in the tab bar. Dragging a tab dynamically reorders the other tabs in the tab bar.