vanilla/vanilla — pull request #2294 by imnotjames (2014-11-27 08:05:45+00:00)
Title: use explicit concat for groups in SQL driver

this makes it possible to set an or/and explicitly in a beginwheregroup so that doing an OrOp() after starting a BeginWhereGroup() doesn't make the entire group an OR. If this is all intentional then perhaps the documentation should be made clearer - and I'd be fine with updating the comments in a pull request, just not sure of what is exactly the correct outcome.

This is so that this code:
```php
Gdn::SQL()
->Select('*')
->From('Test t')
->Where('ID', 5)
->BeginWhereGroup()
->OrWhere('InsertIPAddress', 123456)
->EndWhereGroup();
```
would not generate:
```sql
select t.*
from Test t
where t.Id = :ID
or (t.InsertIpAddress = :tInsertIpAddress)
```
instead of the correct output of:
```sql
select t.*
from Test t
where t.Id = :ID
and (t.InsertIpAddress = :tInsertIpAddress)
```

This also adds `OrBeginWhereGroup`.

The scary thing is that while I've looked through the code for the few situations where this exists, and this is the "correct" behavior.. this could cause backwards compatibility issues - not just with the internals but with plugins as well.