Introduce a new way for plugins to interact with poezio

- Try to reduce the use of the “core” object in the plugins
- New “api” member for each BasePlugin which is a wrapper around
    the unique PluginAPI object. (instead of having the methods
    directly in BasePlugin and then calling the PluginManager)
- Documented methods with rst (for sphinx)
Upgrade update.sh to stop when an update fails

(and tell what is failing)
Make the script posix-compliant
Fix PluginAPI.run_command()
Document with sphinx timed_events, common, and add methods to PluginAPI

- add methods related to timed events to the PluginAPI
- remove parse_command_args_to_alias because str.format does that, and
  better
→ update the alias plugin