Simplify the API while maintaining the expressiveness and extendability of the previous version

I chose the name `standard` for the default generator because it will
be clear in context, especially when there are other generators that
use the same naming scheme.

This is all guided by discussion in pull request #4