Repurposed get_functions() and get_classes() functions in the parse module to return a dict of information about each function and class in the source tree.
Reverting PLParser.m to previous commit 61d0a587c4ec5d2f5b1bda0741f3c552d081e33e.

Instead of having the parse module handle creation of the documentation, the PLParser
will do so. This allows the PLParser to be more efficient, in that it can retrieve
more information in a single call to the parse module. Additionally, the parse module
now provides functions for returning dictionaries of function/class information. These
will be used by the PLParser to provide more functionality for documentation rather
than just a string, such as dynamically linking to other parts of documentation.
PLParser now uses a method parseSource: to parse the source into an abstract syntax tree and store it to the instance variable pyTree.
Better memory management of pyTree in PLParser.
Created a new method documentationString: in PLParser that calls the get_documentation() function in the parse module to return a documentation string.
Created an extension of the NSDictionary class that provides a method for converting a python dict to an NSDictionary.
Implemented method for documentation: in PLParser to build a dictionary of information for all functions and classes, including their line number, docstring, and the function arguments.
The PLEditorViewController now has a PLParser instance variable that will parse the document after every newline and log the documentation string.
Fixed minor syntax bug in parser module.
The pyTree instance variable in PLParser is now initialized by parsing an empty string.
The PLParser class now throws exceptions when errors occur interfacing with the parse module.
The NSDictionary pythonDict extension now throws exceptions upon errors interfacing with the Python dict.
callPythonFunction:name method in PLParser now uses the PyObject_CallMethodObjArgs function to call a method.

According to the documentation, this is a faster alternative since a PyObject is always passed.
PLParser now throws an exception if it can't parse the source in parseSource: method.
Liasis only initializes the Python interpreter once now with Py_Initialize().

Before, it initialized the interpreter everywhere where needed. This causes serious problems in that the interpreter state seems to change (or be reset) with every Py_Initialize() call. Because of this, the PLParser could not keep track of its imported parse module. Also, calling Py_Finalize() only happens when Liasis is closed. Calling it elsewhere destroys the current interpreter state.
PLParser now includes a method variables: to call the get_variables() function in the parse module, returning an array of variable names in the source code.

The PLEditorViewController checks for variables after every newline as a testing method.
Fixed bug in nestable_lines() function in parse module.

This function was not parsing deep enough into the tree; instead, it was checking the generators returned from ast.walk().
PLParser now wraps the nestable_lines() function in the parse module.

The nestableLines: method returns an NSArray of NSArrays, where each subarray contains two entries: the start and end line number for a nestable group. The PLEditorViewController calls this method to test its output.