Handle !important CSS declarations (fixes #49)

This was a little trickier than I thought because "!important" allows individual properties within a single rule to have a different priority than the selector would indicate. But my solution is pretty straightforward: split the rule and pull out the "important" properties.

Again, this could bit turned into a simpler block. E.g.
```python
for is_important, bulk in ((1, bulk_important), (0, bulk_normal)):
    if not bulk:
        # it's fine that the string might be empty, in that case don't bother
        continue
    specificity = (
        is_important, 
        id_count, 
        class_count, 
        element_count, 
        ruleset_index, 
        rule_index
    )
    rules.append((specificity, selector, bulk_normal))
    rule_index += 1
```