Rewrite the code to generate a plan using a tree rather than a graph

This makes generating the optimal plan for parallelization extremely trivial.

Also added a new Stepford::FinalStep class instead of using a fake final
step. This class just logs a message that it's all done.

Thanks, Ran!
Remove unneeded BUILDARGS
Preload all step classes when the Planner object is built
Update primary docs for final steps & parallelization changes
Make sure step sets are always sorted for predictability
Work around Perl's wonky parsing of uniq after sort
Add more words to spelling whitelist
Add minimal docs for Stepford::FinalStep
Merge pull request #3 from maxmind/dave/better-multiple-steps

Running multiple steps in parallel actually works