* There are 2 types of user agent strings that present Safari: one that contains fragment {@code Version/1.2.3} from where the version of
* Safari browser can be extracted and others that do not.
* Fortunately Safari User-Agent string contains version of WebKit that can be used to discover the version of Safari browser.
* This class contains mapping between version of WebKit and Safari browser taken from @see <a href="https://en.wikipedia.org/wiki/Safari_version_history">Wikipedia</a>.
* In most cases version of WebKit exists and uniquely identifies version of Safari browser.
* Unfortunately there are several exceptions.
* <ol>
* <li>There is no information about WebKit version for some Safari versions. This requires additional discovery</li>
* <li>
* The same version of WebKit used in several versions of Safari that causes ambiguity. Fortunately in all found cases these different versions of Safari
* are built for different operating systems, so theoretically we can distinguish between different versions of Safari with the same web kit by using
* information about operating system. Such feature however is not supported by the environment right now.
* <a href="http://developer.sonyericsson.com/site/global/docstools/browsing/p_browsing.jsp">Sony Ericsson Web Docs & Tools</a><br>
* <a href="http://developer.apple.com/internet/safari/faq.html#anchor2">What is the Safari user-agent string</a><br>
* <a href="http://www.pgts.com.au/pgtsj/pgtsj0208c.html">List of User Agent Strings</a><br>
* <a href="http://blogs.msdn.com/iemobile/archive/2006/08/03/Detecting_IE_Mobile.aspx">Detecting Internet Explorer Mobile's User-Agent on the server</a>