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`. If the option is not defined, it will be true for IE9, and false otherwise. A developer can override it to always be true or false, however.

### How it works
  - For older IE versions, with the `styleSheet` approach, the styles are simply appended to the CSS text string. The blocks of styles are wrapped in identifiers like `/** >>0 **/ ...styles... /** 0<< **/` so they can be reliably updated/removed when combined with HMR.
  - 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.
There need to be a special case for `replacement === ""`. You should remove the `/** >> 123 **/` comments in this case. There shouldn't remain anything from a removed stylesheet.