Changed the Hotkey command's default If/IfWin criterion.

Hotkey/hotstring threads default to the same criterion as the hotkey.
All other threads default to the last setting used by the auto-execute
section, which itself defaults to no criterion (global hotkeys).
Changed float format for better accuracy and to avoid truncation.
Revert "Removed #Persistent."

This reverts commit 13f9ee5dea0891056b757d9be73a6141691ec3ce.
Update a comment
Changed FileOpen() error handling for consistency with other commands.

- Return empty string on failure, not zero.
- Always throw an exception for invalid params.
- Don't throw an exception for external causes.
- Don't make behaviour depend on g->InTryBlock.
Disallow methods with OnMessage to avoid confusion
Commands which don't set ErrorLevel at all shouldn't return 1
Renamed Args to A_Args and changed behaviour slightly.

- If no args, assign an empty array so A_Args[1] doesn't cause an error.
- Made it super-global so behaviour is like other built-in vars.
Improved code reuse for writable built-in vars.
Changed regex option `a to enable \R to match Unicode newlines.
Removed ComObjUnwrap(obj) and ComObjTypo(obj,...).
Split ComObjActive() from ComObject() and changed "ownership" rules.
Removed "polymorphic" behaviour of ComObj...().