validation.go
func CleanUrl(rawurl string, min, max int) (string, error) {
	err := CheckUrl(rawurl, min, max)
	if err != nil {
		return "", e.Forward(err)
	}
	u, err := url.Parse(rawurl)
	if err != nil {
		return "", e.Push(e.New(ErrInvUrl), err)
	}
	if u.Scheme == "" {
		return u.String(), e.New(ErrNoScheme)
	}
	return u.String(), nil
}
func CleanUrl(rawurl string, min, max int) (string, error) {
	err := CheckUrl(rawurl, min, max)
	if err != nil {
		return "", e.Forward(err)
	}
	u, err := url.Parse(rawurl)
	if err != nil {
		return "", e.Push(e.New(ErrInvUrl), err)
	}
	if u.Scheme == "" {
		return u.String(), e.New(ErrNoScheme)
	}
	return u.String(), nil
}
// CleanUrl check the characteres in url and parser it with url.Parse.
// If url is ok return one string with it or if the scheme is missing
// return the url and an error.