Remove WhereChain, and implement where_not.

While the WhereChain implementation made some sense when we were
supporting where.not, where.like, and where.not_like, it doesn't
really make sense when supporting only the where.not case.

This commit removes WhereChain and implements where_not, instead. While
the method-chaining version might seem a bit prettier (I do tend to
think a dot is more attractive than an underscore) it also incurs extra
method call overhead and makes the implementation more complex to read,
as well.