Validates a non-required URL value using IsValidURL():
    - if invalid adds InvalidValue error (if problems accumulator is provided)
    - an empty URL is considered valid and no error or warning is issued.

def ValidateURL(url, column_name=None, problems=None):
  """
  Validates a non-required URL value using IsValidURL():
    - if invalid adds InvalidValue error (if problems accumulator is provided)
    - an empty URL is considered valid and no error or warning is issued.
  """
  if IsEmpty(url) or IsValidURL(url):
    return True
  else:
    if problems:
      problems.InvalidValue(column_name, url)
    return False