Add pry and pry-doc as development dependencies
Add alternative acceptance test
Add names_of_available_algorithms without test
Change test to not stub method
Add #descendants method to Class

Lists all the classes that inherit from the class that receives the
"descendants" message.
Make algorithms inherit from Algorithm

With the help of the Class#descendants method (implemented in 3724002),
these changes will allow for listing all the available algorithms.
Add `Algorithm.names_of_all_algorithms`

This also necessitated the addition of `Algorithm.name`, which is mostly
used on classes inheriting from Algorithm (`Algorithm.save` returns an
empty string, so not very useful).
Show available algorithms if argument is missing

Previously when the `-a` flag was passed without an argument the
available algorithms weren't shown.
Add top-level documentation to class