Adding ISieve interfaces

This resolves #52.

**NOTE:** This breaks implicit operator conversions because we switched to an interface. But the same results can still be achieved by calling `ToExpression()` and `ToCompiledExpression()`.