func Load(cfg interface{}) (args []string) {
	_, args = LoadWith(cfg, defaultLoader(os.Args, os.Environ()))
	return
}
Load the program's configuration into cfg, and returns the list of leftover
arguments.

The cfg argument is expected to be a pointer to a struct type where exported
fields or fields with a "conf" tag will be used to load the program
configuration.
The function panics if cfg is not a pointer to struct, or if it's a nil
pointer.

The configuration is loaded from the command line, environment and optional
configuration file if the -config-file option is present in the program
arguments.

Values found in the progrma arguments take precedence over those found in
the environment, which takes precedence over the configuration file.

If an error is detected with the configurable the function print the usage
message to stderr and exit with status code 1.
package conf
import (
	"bytes"
	"context"
	"errors"
	"flag"
	"fmt"
	"io/ioutil"
	"os"
	"path/filepath"
	"reflect"
	"sort"
	"strings"
	"gopkg.in/go-playground/mold.v2/modifiers"
	validator "gopkg.in/validator.v2"
	_ "github.com/segmentio/objconv/adapters"
	"github.com/segmentio/objconv/yaml"
)
var (
	Modifier = modifiers.New()
)