WP_CLI::add_action() and WP_CLI::do_action() are confusing

Exhibit A: https://github.com/wp-cli/wp-cli/issues/844#issuecomment-27117617

They have the same names as the WordPress API (`add_action()` and `do_action()`), yet they don't inter-operate and don't even accept all of the same parameters.

One solution would be to give them different names, like `WP_CLI::add_hook()`.

Another solution would be to copy all the code from their WP counterparts. This would mean that both WP-CLI events and WP events would reside in the same namespace. Need to study the implications of this further.