Adding support for the document manager to keep track of when documents have changed. The document superclass now implements begin and end edit methods that lock the document. The endEdit method sends a PLDocumentWasEditedNotification.
The document architecture was changed such that more of the logic was handled by the document manager. Many document specific methods were moved to the abstract document superclass, and many others were removed from the documents altogether, transferring more responsibility to the document manager.

Initialization from a file on the system is implemented by the superclass, which then calls the setData: method. Subclasses of PLDocument must implement a setData: and documentData methods. These are used to read and write data from the filesystem. All subclasses must also implement isEqualToDocument:. The methods that PLDocument subclasses must implement are now specified in the PLDocument protocol.
Moved initialization code from the PLTextDocument that was shared with the PLDocument up to its superclass.
Removed the private implementation of the PLDocument base class and refactored the isDocumentUnsaved to be documentIsUnsaved:  thus being consistent with the language used in the PLDocumentManager class methods.

The way documents that are changed outside of the app has been slightly modified. The "save" option has been removed and replaced with a "save as" option. The new save as option opens a new tab with the new document and reverts the old document to the saved state on file.
Merged the working version of the document branch with the current version of develop. This fixes an issue where documents arent being referenced by the document manager, and updates the document system where the document manager plays a larger role in regulating document reading and writing.