Adds `singleton` option to allow re-using a single <style> element

This adds the ability for the style-loader to re-use a single <style>
element reference when adding/removing styles from the page. This is
particularly important when you want to use style-loader with a browser
like IE9, which enforces a hard-limit on the # of style tags allowed on
the page at any given point.

This is added as a new option `singleton`, and is automatically turned
on if the browser is determined to be IE9.

### How it works

For this to work, each set of styles that are applied to a tag need two extra bits of information: their index in the singleton tag, and their length. These values are used to properly remove/re-add them as necessary.
  - For IE, with the `styleSheet` approach, the styles are simply appended to the CSS text string. If a style is removed, its "section" of the text is replaced with an equal number of empty characters.
  - For other browsers, the styles are added as a new text node. If a style is removed, its text node is removed, and a dummy text node (with empty text) is added in its place, as a placeholder.