`#not_in` with a range should respect proper precedence

Currently, doing

```ruby
relation[:id].not_eq(4).and(relation[:id].not_in(1..3))
```

will generate

```sql
"id" != 4 AND "id" < 1 OR "id" > 3
```

Which would incorrectly include records with an id of 4, as the OR
statement has higher precidence than the AND statement. The `or`
method on `Node` properly groups the statement in parenthesis.
Merge pull request #331 from sgrif/sg-in-should-not-break-queries

`#not_in` with a range should respect proper precedence