Match multiple exclusion rules

This does the following:
- Changes the exclusion-rule logic such that, if multiple rules with pass keys match, then the keys taken is the union of the matches.  If *any* matching rule has no pass keys, then Vimium is disabled.
- Substantially updates the page popup.  Basically, it now reuses the structure and styling from the options page (and we lose `popup.coffee`).
- Consistent look-n-feel wrt exclusion rules.

Example:

![snapshot](https://cloud.githubusercontent.com/assets/2641335/5518433/c6fc33ac-891f-11e4-9a20-da71e0fdaa89.png)

Other points:
- The state that would apply *if the rules were to be save* is given at the top of the popup.
- Patterns turn red when they don't match the current URL. (This looks better in practice than you might expect.)

Issues:
- The *only* way to delete rules is via the little cross.  So that workflow is not great.
- @mrmr1993 wanted some user feedback as to what a red pattern means.  I can't figure out how to do that for now.
- The popup is wider than it was before.  Is that ok?
- (There must be more, I'll add them as I think of them.)

Fixes #1339.

Edit:

Additional notes:
- The CSS from the options page has been moved to its own file, and is now shared with the popup page.
It would be really easy here to set
```
patternElement.title = "This pattern does not match the current URL"
```
so the user has at least *some* feedback of why the text is red. Obviously `patternElement.title = ""` for resetting would be necessary too.