Allow to use replacement patterns in destination urls of custom redirects, and remove UrlMatchMode

UrlMatchMode is not needed because:
- For urls matched by regex, we can always use full url as input
- For urls not matched by regex, we can test the first char of source url, if it's slash,
  then use path and query as input, otherwise use full url as input