pw_cli: New pw plugin registration system

- Introduce new system for registering plugins with the pw command.
  Plugins can be registered for a directory tree by listing them in a
  PW_PLUGINS file.
- Update most existing plugins to be registered as "built-in" plugins in
  pw_cli.
- Register pw_presubmit using a PW_PLUGINS file, since it only applies
  to the Pigweed repository.
- No longer add plugins to the pw argument parser as subparsers.
  Instead, use argparse to separate the pw arguments from the plugin
  arguments.
- Remove __init__.py files that were only used to trigger plugin
  registration, since __init__.py is not required in Python 3.

Change-Id: I20028f2053476df2afebd36e9299062e7e96727e
diff --git a/PW_PLUGINS b/PW_PLUGINS
new file mode 100644
index 0000000..629c63f
--- /dev/null
+++ b/PW_PLUGINS
@@ -0,0 +1,14 @@
+# The PW_PLUGINS file lists commands that should be included with the pw command
+# when it is invoked in this directory or its subdirectories. Commands in this
+# file override those registered in parent directories.
+#
+# Entries in this file have three columns:
+#
+#   <name> <Python module> <function>
+#
+# The Python package containing that module must be installed in the Pigweed
+# virtual environment. The function must have no required arguments and should
+# return an int to use as the exit code.
+
+# Pigweed's presubmit check script
+presubmit pw_presubmit.pigweed_presubmit main