Allow rules to contain many parts.

Rather than having a single "header" + "regexp" for each rule we've
now relaxed things such that rules can contain an arbitrary number
of header+regexp pairs.

For a rule to match each part must match, allowing definitions like:

    status:404 method: "(put|post|delete)"

This closes #1.