Add gradual refinement feature to the structured mesh generator

as titled. I also introduced a customized TCLAP output which can print a list of arguments in the order they were added.
I agree, that `default` catches all other cases. I think the intention behind this warning is the following one: Adding a new enum value in `MeshElemType` would be handled by the `default` case, which will be probably wrong.