func New(args ...Args) (*Xslate, error) {
	tx := &Xslate{}

	// We jump through hoops because there are A LOT of configuration options
	// but most of them only need to use the default values
	if len(args) <= 0 {
		args = []Args{Args{}}
	}
	err := tx.Configure(args[0])
	if err != nil {
		return nil, err
	}
	return tx, nil
}
func New(args ...Args) (*Xslate, error) {
	tx := &Xslate{}

	// We jump through hoops because there are A LOT of configuration options
	// but most of them only need to use the default values
	if len(args) <= 0 {
		args = []Args{Args{}}
	}
	err := tx.Configure(args[0])
	if err != nil {
		return nil, err
	}
	return tx, nil
}
// New creates a new Xslate instance. If called without any arguments,
// creates a new Xslate instance using all default settings.
//
// To pass parameters, use `xslate.Vars`
//
// Possible Options:
//    * ConfigureLoader: Callback to setup the Loader. See DefaultLoader
//    * ConfigureParser: Callback to setup the Parser. See DefaultParser
//    * ConfigureCompiler: Callback to setup the Compiler. See DefaultCompiler
//    * ConfigureVM: Callback to setup the Virtual Machine. See DefaultVM
//    * Parser: Arbitrary arguments passed to ConfigureParser function
//    * Loader: Arbitrary arguments passed to ConfigureLoader function
//    * Compiler: Arbitrary arguments passed to ConfigureCompiler function
//    * VM: Arbitrary arguments passed to ConfigureVM function