Experiment with an option to control recursion behavior.

This is a repository setting.  Not sure if it makes sense
to also have this as a stack setting.

This creates an incompatible change in the pinto command-line
interface.

It also creates an inconsistency in the way we name command-line
options.  I may change all the others to remain consistent.
Fallback to either nano, pico, or vi if no editor is set.

This fixes #119.
Deduplicate and sort targets in the generated message title.
Update change log.
Update tests, now that items in the message title are sorted.

Also, moved CommitMessage inline with Pinto::Role::Committable
because I just didn't like having a separate class that looks
out of place.
Revise documentation on the --recurse option.

Getopt::Long sees --norecurse and --no-recurse
as the same.  That's good because it means we don't
have to change the interface.  We've only lost the
ability to use the -n shortcut.
Merge branch 'master' into feature/recursion-defaults

Conflicts:
	Changes
Bump VERSION, regen README.
v0.093

      [INCOMPATIBLE CHANGES]

      - The "add" and "pull" commands now have both --no-recurse and --recurse
      options.  This allows you to turn recursion off OR on, depending on
      the default setting for the repository (see more about that under
      ENHANCEMENTS).  However, the -n shortcut for --no-recurse is no
      longer available.

      [ENHANCEMENTS]

      - The pinto.ini configuration file may now contain a "recurse"
      parameter that determines the default recursion behavior for
      the "pull" and "add" commands.  Setting it to 1 means those
      commands are recursive by default.  Setting it to 0 means
      those commands are not recursive by default.  Either way,
      commands can always override that parameter using either the
      --recurse or --no-recurse switches.

      - pinto now falls back to using nano, pico, or vi if none of the
      usual environment variables for controlling the editor are set.
      This fixes #119.  Thanks @borisdaeppen for the suggestion.

      - The distributions listed in the generated title of the commit
      message will now be sorted and deduplicated.
Update docs to reflect that stack names may now contain a period.

The code for this was changed a while back.  I just forgot
to update the docs.
Add methods for determining the main module of a distribution.

It's more of a heuristic, since there is no formal definition
of what a "main module" actually is.
Force overlapping packages to always be unregistered.

This closes #48.
Add command for listing roots of a stack.

This will tell you what you need to install to get
all the distributions in the stack.
Improve variables names and add test case for circular roots.
Add test case for the warning about missing prereqs.
Can't check for missing prereqs when tracing roots.

Detecting a missing prereq is more complicated.  It
depends on which build phase you care about, the target
perl version, etc.
Better variable names, improved readability.

It gets very confusing when you talk about
dependnecies: who is the dependor and who
is the dependant.
Speed things up by adding a little caching.
Just revise comments.
Bump VERSION, regen README.