PLFormatter only enters a tab if beginning on an empty line.

This is a set up for the tab cycler, which will determine the appropriate place to tab. Empty lines receive a normal tab (replaced with whitespace).
PLFormatter didFormatAfterTab:withReplacementString:inRange now can return user to indentation level of previous line.

A specific example: if in a nested function definition, pressing tab will insert the number of whitespaces necessary to reach indentation level of the previous line.
PLFormatter prevents tabbing past the proper indentation level.
If after the proper indentation level, the PLFormatter now deletes the extra text, returning the insertion point to the proper indentation level.

For safety, this is only done if the entire line is whitespace. If there are any non-whitespace characters, pressing tab does nothing.
PLEditorViewController now stores a history of the most recent two edits in a NSMutableArray.

PLFormatter methods have been updated to receive a history of edits from the NSTextView (sent from the PLEditorViewController).
Merge branch 'develop' of https://github.com/dnicklas/Liasis into feature-cycle_tabs

Conflicts:
	Liasis/Liasis/TextEditor/PLEditorViewController.h
PLFormatter now cycles backwards by pressing tab.

Specifically, if inside a nested function/class definition and the insertion point is at the proper indentation point, delete backwards by 4. May continue this until reaching the zero location on the line, then tab enters whitespace until at the proper indentation location.
Changed old-style NSArray declaration to new-style in PLFormatter method.
Merge branch 'develop' of https://github.com/dnicklas/Liasis into feature-cycle_tabs

Conflicts:
	Liasis/Liasis/TextEditor/PLEditorViewController.h
	Liasis/Liasis/TextEditor/PLEditorViewController.m
PLFormatter uses an improved, more efficient method for responding to tabs.

PLEditorViewController only stores the previously inserted string, rather than a history NSMutableArray. PLFormatter is updated to use just the previously inserted string.
PLFormatter better checks the current editing state to handle edge cases upon entering a tab character.
Removed a todo item for the PLFormatter: for now, tab cycling should only refer to moving the cursor around, not shifting non-whitespace lines.
Created a new method in the PLFormatter (indentationLocationInTextView:atIndex:) to determine the proper indentation level for a given line.

Currently, this works in function/class definitions and open brackets.
Using new PLFormatter method indentationLocationInTextView:atIndex in the method didFormatAfterNewline:withReplacementString:inRange.

Implementation doesn't return proper indentation point.
Created two methods in PLFormatter to determine indentation at current line or at next line.
Wrote prototype for methods indentationLocationInTextView:atLineAfterIndex and indentationLocationInTextView:atLineIndex.
Implemented the two prototyped PLFormatter methods from previous commit (indentationLocationInTextView:atLineIndex and indentationLocationInTextView:atPreviousLineIndex).

Indentation works for simple cases in open lists, but not with function/class declarations.
PLFormatter indentationLocationInTextView:withPreviousLineLocation returns the previous line's indentation location if it can't find another indentation location.
Deleted old, commented out text in didFormatAfterNewline:withReplacementString:inRange in PLFormatter.
If indentation location is not found in the PLFormatter method indentationLocationInTextView:withPreviousLineLocation: return 0.

The logic for this: an indentation point should always be found independent of the previous line's indentation point.
Moved PLFormatter logic for finding indentation location in brackets to a separate method.