Use 'return drush_set_error()' pattern.
md5: remove unused code. Reduce redundancy. -- Anyway I think this code is useless.
Documentation and cleanup.
There's only one core, if any.
Allow to pass project type to pm-download in the form 'drush dl date/module' or 'drush dl drupal-7.23/core'.
Cleanup make_projects(). Use provided project type, instead of the one from the update service (if any).