相对路径在多重上级目录的情况下的bug修复

处理上级目录的正则，全局匹配
<pre>
var DOUBLE_DOT_RE = /\/[^/]+\/\.\.\//g 
</pre>

处理相对路径函数
<pre>
function realpath(path) {
  path = path.replace(DOT_RE, "/")
  path = path.replace(MULTIPLE_SLASH_RE, "$1\/")
  while (path.match(DOUBLE_DOT_RE)) {
    path = path.replace(DOUBLE_DOT_RE, "/")
  }
  return path
}
</pre>
while中，replace全局正则替换会导致问题

<pre>
realpath('http://test.com/a/b/c/d/e/f/g/h/../../../../../../i')
</pre>
得到的结果是：
<pre>
http://test.com/a/b/c/d/i
</pre>
而预期是：
<pre>
http://test.com/a/b/i
</pre>

去掉了全局匹配，while逐次匹配，即正确
另外，增加了一个测试用例