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.
[MDN recommends using `search` instead of `match`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/search):

> When you want to know whether a pattern is found in a string use search() (similar to the regular expression test() method); for more information (but slower execution) use match() (similar to the regular expression exec() method).