Spawned from this conversation.
Move the creation_callback argument in the generate method to the end of the function, so users can opt to omit it more often.
The reasoning is that it's rarely used, and it's a more complicated type than your bog standard ints and bools, so isn't very intuitive.
Default logging to std::err if non supplied.