add support for complex expressions and implicit getter-style functions

This PR adds support for:

- complex expressions: `age > 2 && age < 10`
- implicit getter-style functions

```
age >= 25 && age < 35
```

Compiles to: 

```
('function' == typeof _.age ? _.age() : _.age) >= 25 && ('function' == typeof _.age ? _.age() : _.age) < 35 
```

Basically allowing for an object to have `obj.age` or `obj.age()`.