Rename Stack->delete to Stack->kill, since this is what we call it elsewhere.
Use plain File::Copy::move() instead of complicated File::Copy::Recursive::rmove().

The latter will recursively copy the contents of the directory and then
remove the original.  Must faster (and simpler) to just move the
directory itself.
Rename methods.

I like the java-style of naming these types of methods "assert_whatever".
Extract logic for walking prereqs into a separate class.
Switch to MarkAsMethods.
Normalized exception messages when given arguments we don't understand.
First attempt to make merges work again.
Just whitespace.
Remove debugging code.
Add get_distribution method, for getting distribution objects that are on a particular stack.

The interface is deliberately similar to get_distribution on Pinto::Repository.
Big refactoring of how distributions are found in the repo.

Methods like find_or_pull() did too much work.  Now it has been
broken down into separate methods for getting (existing) and
fetching (remote) distributions.  This gives Actions more control
over what goes on.

Also, get_distribution(), get_package(), ups_package() have lots
of polymorphism, depending on which arguments you give it.  Would
probably be nice to add some parameter validation here.
Slightly better method name.
Completely removed stack descriptions.

Now that we've temporarily given up on stack properties, it
isn't clear how to handle the stack description.  So until
we know how properties are going to work, I'm going to punt
on the description too.