Allow modules to control the order of hook invocations

This is a follow-up to [Provide weight-like mechanism to ensure order of hook calls](https://drupal.org/node/2031383). It provides a similar hook for native drush hooks in \_drush_invoke_hooks().

It replaces https://github.com/drush-ops/drush/pull/223, which got messy due to a merge without rebasing.