Introducing the CSP Fixer

@devoncarew

Devon: sorry, a couple of unrelated trivial changes have crept in.

I should also add tests.

Also note that I deliberately exposed the feature only in the form of an explicit action. I didn't want to build it into the Bower install/update sequence or anything like that because it's too early and too risky.

I think it's following the spec accurately. All these missing tags are actually implied for a "regular" HTML document. I just didn't know that that applied to web components as well. And I was a little surprised that it knew how to correctly pull apart `<link>`s and the rest between `<head>` and `<body>`. A littler scary, come to think of it :)

It might be possible to correctly remove or preserve the extra tags as warranted by the original input (e.g. remove for Polymer elements, preserve for proper pages). If I see that it's indeed the case, I'll implement that in another CL, just for cosmetic reasons.