Switched to using `Is{Input|Error}Available` instead of `stream:CanRead`.

`CanRead` was occasionally crashing on Windows when reading input from
an application with delays in producing the output.
Using `IsInputAvailable` hasn't shown any issues, so using it instead.
Added package `ExecuteCommand` method (#166).
Added `function` handling to the token processing.
Reorganized token list processing to keep it within the editor.
Fixed storing position in `function` handling.
Updated parser to handle `...` in function parameters.
Added document `SetActive` method (#166).
Updated parser to store position for not-quite-valid function names.
Added function outline (closes #337, closes #222).
Remove function dropdown from the toolbar (#337).
Updated outline logic to show on the very first launch (#337).
Updated outline to show files without functions (#337).
Updated indicator processing to improve performance on large files.
Updated outline to always expand functions in the current file (#337).
Updated parser to avoid 'breaking' statements during incremental processing.
Refactored panel docking; added `AddPanelDocked` package method (#166).
Refactored drag-and-drop processing for Project/Output window tabs (#377).
Added drag-and-drop support for the Outline tab (#337).
Added view menu for the Outline window (#337).
Added package `GetConsole` method (#166).