Merge branch 'master' of https://github.com/dnicklas/Liasis
Added initial implementation of autocomplete to PLEditorViewController.

This overwrites the tab cycling functionality by using tab to query for the autocomplete list. The autocomplete list is populated from the parser and then processed to only show words matching the beginning of the partial word entry.
The parse module used by PLParser now only returns individual instances of each defined variable, rather than each occurrence.
Fixed out-of-bounds issue in checking if beginning of word matched the partially entered word during autocomplete.
PLParser now returns an alphabetically sorted array of defined variables.
Autocomplete in PLEditorViewController is now triggered by the escape key, rather than the tab character. Therefore, tab cycling is now restored.
Changed method for case-insensitive comparison for autocomplete in PLEditorViewController.
Autocompletion now handles exceptions thrown by PLParser when the source code is invalid, thus making the parseSource: fail.

The current implementation prints an error message as the only autocomplete entry. This will be improved later.
Implemented autocomplete for the interpreter.

This approach uses the __main__ module to obtain the list of defined variables.
Better allocation of PLParser with safer deallocation.
Added a temporary workaround for a crash occurring when autocompleting after a previous failed attempt (due to a source code error).
The PLParser now uses an instance variable for an array of variables in the source code.

This allows the PLEditorViewController to use a previous list of autocomplete variables in the case of an exception occurring due to an error in the source code. As such, source code with errors still provide autocomplete information from the previous autocomplete attempt. A notification of the error in source code is sent through NSLog.
Autocomplete now works on a timer in PLEditorViewController.

The autocompletion box will display after an input delay anytime that the last character entered was non-whitespace.
The autocomplete timer now stops triggering after pressing escape with the autocomplete window open.

The use case that this commit fixes: 1) Enter text. 2) Press escape to clear the autocomplete window. After pressing escape, the autocomplete timer will not fire and open the autocomplete window again. However, this does introduce a bug, where pressing escape twice is sometimes required to remove the autocomplete window.
Merge branch 'develop' into feature-autocomplete
PLParser is now PLPythonIntrospectionController and is a plugin

As a temporary workaround until Liasis has a defined Plugin API for add-ons, this class links to the Liasis Text Editor target.
PLEditorViewController autocomplete now parses text on a 10 second timer and saves the results in an instance variable.

This approach helps to provide an up-to-date list of possible autocomplete matches even if the source code has errors in it.
Progressed towards fixing a bug in Python introspection.

When parsing text, if the text is invalid, an exception is thrown. To allow for future autocomplete to work, the PLPythonIntrospectionController needs to reimport the parse module. Prior to this commit, the PLPythonIntrospectionController was deallocated and reinitialized by the PLEditorViewController.
Increased the autocomplete timer delay to 0.75 seconds.
Autocomplete timer is now stopped on delete.