code: function CommandGroup(options) {
  	this.name = options.name;
  	this.description = options.description;
  	this.commands = options.commands || [];
  	this.callback = options.callback || function () {
  		};
  	this.required = (options.required !== undefined) ? options.required : false;
  
  	this.commands.map(function (command) {
  		if (!(command instanceof Command)) {
  			throw new ConfigError("Command of group " + this.name + " was configured wrong, must be Array of Command object, did you use 'new'?");
  		}
  	}.bind(this));
  }
docs: Command Group
  
  A container that holds commands. One command can be chosen by the user at a time, per Command Group.
  
  Options:
  
  * name The name of the command
  * [description] Description of the command, used in help text and error messages.
  * commands An array of commands to use for this group.
  * [callback] function(cliInstance, command), A function that is called when this command is used.
  * [required] If this Command Group is required or not, default: false
  
  @param {{name, [description], commands, [callback] [required]}} options
  
  @constructor