Issue title: Issue with paper width/height to 100% in safari
 Issue body: Setting width or height to 100% usually works, but not in safari due to the render fix.

```
paperproto.safari = function () {
    var rect = this.rect(-99, -99, this.width+99, this.height+99).attr({stroke: "none"});
    setTimeout(function () {rect.remove();});
};
```

Adding fixed value to a percentage makes the rect() function to throw an error.

 Comments: 
 Comment 0: I get the same error
 Comment 1: The following snippet detects `this.width` and `this.height` format:

```VimL
        // Utility method, used to parse sizes of different units and (eventually) to add a value to the size.
        var parseSize = function (size, addition) {
            var result = null,
                rest   = null;

            if (typeof size == "string") {
                result = size.replace(/([0-9]+)(.*)/, function(match, p1, p2) {
                    amount = addition ? parseInt(p1) + addition : parseInt(p1);
                    if (p2 !== "") {
                        rest = p2;
                        return amount.toString() + rest;
                    } else {
                        return amount.toString();
                    }
                });
            } else {
                result = addition ? size + addition : size;
            }

            return [result, rest];
        }

        /*\
         * Paper.safari
         [ method ]
         **
         * There is an inconvenient rendering bug in Safari (WebKit):
         * sometimes the rendering should be forced.
         * This method should help with dealing with this bug.
        \*/
        paperproto.safari = function () {
            widthInfo = parseSize(this.width, 99);
            heightInfo = parseSize(this.height, 99);
            var rect = this.rect(
              widthInfo[1]  === null ? -99 : "-99" + widthInfo[1],
              heightInfo[1] === null ? -99 : "-99" + heightInfo[1],
              widthInfo[0],
              heightInfo[0]
            ).attr({stroke: "none"});
            setTimeout(function () {rect.remove();});
        };
```

I don't get any errors with the fix...
 Comment 2: @DmitryBaranovskiy Can you integrate the fix?


Thanks
{'source': 'GithubIssues', 'repo_name_with_owner': 'DmitryBaranovskiy/raphael', 'issue_id': 26347077, 'repo_stars': 11134.0}