Added a method to Parser to find all variables to underline in scope.

This new method takes an index, finds the variable at the index and parses the text to find where it has been used within the scope at that index. Added a new parser, _NameParser to help with this.

Updated unittests to reflect changes in Parser class. Updated Parser variable methods to take indices rather than line number for consistency.
PLEditorViewController now underlines instances of the variable under the insertion point.

Updated PLPythonIntrospectionController to wrap the variable_indices method of the Parser object. PLEditorViewController now has an underline timer that is started when the selection changes. After the timer is triggered, underline all ranges returned from the variable_indices method. Added an addAttributesWithoutEditing method to to PLTextStorage as a convenience for setting the underline style.

Also includes updated PLPythonIntrospectionController variablesWithIndex: method to wrap the changes to the variables method of the Parser object. This necessitates minor changes to PLEditorViewController textView:completions:forPartialWordRange:indexOfSelectedItem: method to sort the keys of the returned dictionary and the parseText method.
Fixed an issue with underlining function/class definitions.

The nodes for these definition in the ast begin at the def/class keyword. In the NameParser of the parse module, offset the col_offset attribute of the node by the keyword length (def or class) so that the index of the variable is the name of the definition.
Added a todo in the parse module.
Merge branch 'feature-variable_underlining' into develop

The merging branch implements basic underlining of all instances of the variable underneath the cursor in the current scope.
Improved memory management of applicationFont instance variable and fixed an issue in LiasisAppDelegate.

The applicationFont is now set in applicationDidFinishLaunching: in LiasisAppDelegate. In the changeFont: method, it is released and set to the new font generated from the convertFont: method. This improves memory management and fixes an issue where the application would sometimes revert to the default Helvetica rather than that of the applicationFont.
Fixed an issue where source parsing was done much too frequently.

Moved the call to parseText from startUnderliningTimer into underlineText in PLEditorViewController. Now parsing is only done once the timer triggers, rather than on every selection change when it is started.
Fixed several memory leaks and cleaned up methods throughout project.

Significantly reworked the file browser (especially the PLFileBrowserItem) to fix memory leaks and reduce memory footprint. Fixed other memory leaks in several other objects. Cleaned up many instances of variables being assigned and not used. Improved several instances of using mutable arrays/dictionaries and returning the immutable version.
Changed PLDictionaryItem from a struct to an object.

PLDictionaryItem is used by the method added in NSDictionary+pythonDict extension. As a class, retain/release management is simpler than using the struct.
Fixed an out-of-bounds error in the parse module variables method.

When trimming the split lines until finding the previous line with any non-whitespace characters, a situation existed where all lines would be removed and the list would be indexed. The fix checks if any lines are still present before proceeding with the check on the line.
Added a Go To Line window for the text editor view extension.

A new class, PLGotoLineWindowController, displays a window upon pressing Cmd-l that allows the user to jump to a desired line and column. PLEditorViewController adds this keyboard shortcut to its performKeyEquivalent: method and handles the user input in this method.