Add Rule and new Style object

Two new classes to support newer style format. In addition, there is
some minor work on how Rule filters will look and how to covert them
from strings to real function objects.

Current implementation creates a rule Tree for each style. When then
use filter functions to match each feature. If the feature matches, then
collect that style object and look for more matches. Rules can be nested.

If the rule has no filters, then always match the against the rule