Make -U non-recursive by default, add --upgrade-recursive option

I believe that this pull request fixes #304. I incorporated a suggestion from one of the comments in that issue and kept the current behavior with the command option `--upgrade-recursive`.