func NewRequest(domain string, resolveName, includeIP bool, except tools.Exceptions) *Request {
	dr := new(Request)
	dr.topic.domain = strings.ToLower(dns.Fqdn(domain))
	dr.topic.followAlias = resolveName
	dr.topic.includeIP = includeIP
	dr.topic.depth = 0
	dr.topic.except = except
	dr.resultChan = make(chan *result, 1)
	dr.context = make(map[RequestTopic]bool)
	return dr
}
/* NewRequest builds a new request from a context-free perspective.
This is mainly used when making a request that is completely unrelated to any other request. Thus, it should be used
by the dependency finder users to submit requests.

domain is the domain name that is requested for dependency resolution

resolveName indicates whether we are interested in following an eventual CNAME that is found at the requested domain
name. False indicates that we only want the dependency tree for the parent domains of the requested name and the
delegation info to that name.

includeIP indicates that on top of following the eventual CNAME, we want the IP addresses associated to the requested domain name
package dependency
import (
	"github.com/miekg/dns"
	"github.com/ANSSI-FR/transdep/graph"
	"github.com/ANSSI-FR/transdep/tools"
	"strings"
	"time"
	"github.com/ANSSI-FR/transdep/errors"
)
type RequestTopic struct {
	domain string
	followAlias bool
	includeIP bool
	depth int
	except tools.Exceptions
}
type Request struct {
	topic RequestTopic
	resultChan chan *result
	context map[RequestTopic]bool
}