Statements: Add UPDATE, SET, INSERT

The tests illustrate both versions of calling ->set()
```
q->set('column', 'string value') // Lack of an '=' indicates that
                                 // 'column' is just a column name and
                                 // it is expanded to 'column = ?'

q->set('column = "string value"') // Presence of an '=' indicates a full
                                  // expression is passed and the string
                                  // will be added straight to the query
                                  // (params are still allowed)
```
INSERT functions exactly the same as UPDATE.