Add experimental "unified extraction" for parsing scripts and styles.

Instead of having two methods for parsing scripts and styles, consolidate
them.  This also unifies the parse result object, which will allow
installation of scripts and styles from any fragment in the future.  For now,
guard the new method behind a `experimental-extract-unified` config.

Also, make the parsing logic much more robust, handling both HTML4 and HTML5
formats, as well as oddities like spaces and single quotes.  Add tests.

Progress on #24.
If the tasks are synchronous, this will mess up the timing data. The callback would be executed synchronously and the next task would be started before it updated the 'spfProcessCss' timing flag.