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
Use Algorithm.descendants instead of constant Hash

By using Algorithm.descendants the list of algorithms can grow without
the need for adjusting the constant.
Pass the error messages with the exception

I don't want explicit $stderr access deep down in the internal classes.
Address Hound complaints

Move the array down to the next line instead of breaking it.
Have arguments be on their own lines.
Merge pull request #31 from linduxed/alt_impl_for_pr-29

Display available algorithms if `-a` flag is provided without argument
Add acceptance test for typeable passwords

Includes a matcher which checks whether parts of the generated passwords
com from a given list of words.
Make acceptance test use dictionary

Also print more helpful error message if the executable prints an error.
Add unfinished TypeableAlgorithm

Test suite is far from complete.
Put feature spec in pending block

I'll wait until the TypeableAlgorithm is ina decent state before putting
this test online.
Don't use deprecated RSpec pending block syntax
Write algorithm test for different layouts