Removed MinIndex/MaxIndex and added Object.Length.
Removed some obsolete parameters and fixed a silly comment.
Fixed passing of objects and numbers to functions via command syntax.
Revised PerformLoopFor() to reduce code size.
Fixed class/instance var declarations.
Var::ToObject()
Added capability to call methods with command syntax: X.Y <args>

- Return value is always discarded.
- All args are text by default.
OnExit/OnClipboardChange now accept a function, see details:

- Removed OnExit (command) and OnClipboardChange (label).
- Introduced OnExit() and OnClipboardChange(), the syntax is similar
  to that of OnMessage():
    OnExit/OnClipboardChange(["FuncNameOrReference"])
  The function returns the old function (if it had been set).
  Calling it with an empty string as the parameter will remove the
  handler.
- An OnExit function can receive a single (optional) argument which
  replaces A_ExitReason.
- If the OnExit function returns true, the Exit sequence is aborted,
  otherwise the script ends normally. For convenience, ExitApp retains
  its special OnExit-bypassing behaviour inside an OnExit function.
- An OnClipboardChange function can receive a single (optional)
  argument which contains the value (0/1/2) which in v1.x was stored
  in A_EventInfo.
OnExit/OnClipboardChange: fix return value if there was no previous func
OnExit/OnClipboardChange command syntax: add OutputVar for return value
Minor code formatting change
Refactor result token handling and function call code, see details:

- Introduced ExprTokenType::InitResult() and ::Free()
- Introduced a new overload of Func::Call() that takes a variable
  number of arguments, and their type; for simplified building of
  the parameter array required for function calls
- Changed existing code to use the functions described above
Begin converting Gui commands to object syntax, see details:

- GuiType now inherits from ObjectBase.
- Gui object lifetime is now managed like all other objects, i.e.
  script variables own it. The global Gui table is just a lookup table
  now. Destroying the object also destroys the Gui.
- Introduced GuiCreate([title, options, eventPrefix])
    (Event handling system not implemented yet)
- Introduced GuiFromHwnd(hwnd)
- Disabled Gui event label system in preparation for new event system
- Converted the following Gui commands to object syntax:
  - Gui Destroy -> gui.Destroy()
  - Gui Show -> gui.Show([options, title])
  - Gui Hide/Cancel -> gui.Hide()
  - Gui Minimize/Maximize/Restore -> gui.Minimize/Maximize/Restore()
  - Gui Font -> gui.SetFont([options, fontName])
  - Gui +/-Options... -> gui.Options("+/-Options...")
  - Gui Flash -> gui.Flash([enable])
  - Gui Margin -> gui.MarginX and gui.MarginY (properties)
  - Gui Color -> gui.BgColor and gui.CtrlColor (properties)
  - {retrieving HWND} -> gui.__Handle
  - {changing title} -> gui.Title
  The corresponding old Gui subcommands have been removed.
  Automatic Gui creation has also been disabled in the Gui command
  (in preparation for its complete removal, superseeded by GuiCreate).
- The following Gui options have been removed:
  - LastFound -> use WinWait or gui.__Handle instead
  - HwndOutputVar -> use gui.__Handle instead
  - Label -> superseeded by new event handling system
Gui: rename Text control to Label control
Remove GuiType::mName.
Store the GuiType object pointer inside HWNDs for faster retrieval.
Replace global Gui array with a linked list.
Remove Gui name system.
Begin replacing g-labels with new Gui event system
Convert most Gui events to use the new Gui event handling system