backfire.js: split attributes with regex, fixes url(...) case

The previous algorithm would separate the attributes part of a CSS style
by split()ting them at every ';' . This fails miserably in the case of
the "url(data:mime;type...)" element.
So, be more smart and split using an iterating regex
backfire: better escaping of CSS selector pattern

CSS selectors may contain special symbols, like in the case:

    .some-class label + input[type="text"]

where the brackets and the plus symbol have to be regex-escaped.