Works like Control.ResolveUrl including support for ~ syntax but returns an absolute URL.
public static string ResolveServerUrl(string serverUrl, bool forceHttps);