Upsert with autoincrement 2

These patches fix the bug in which DBAgentSQL3 replace the value in the primary key column with 0 on upsert when AUTO_INCLUREMENT_VALUE(_U64) is used.

Different from MySQL's 'ON DUPLICATE KEY UPDATE', SQLite3's REPLACE once deletes
the duplicated row. So the value in the primary key column is changed. This behavior is not
allowed for our current usage.

Thus I implemented the upsert whose behaivor is similar to MySQL's one.
 
It is not a main point of this pull request but I comment about `SeparatorInjector` API because I look a `SeparatorInjector`'s use case.

How about the following usage?

```
SeparatorInjector commaInjector(query, ",");
for () {
  commaInjector();
  ...
}
```

And `SeparatorInjector::clear()` is removed. Create a new `SeparatorInjector` object instead of `SeparatorInjector::clear()`.

I feel that the current API has the following potential traps:

* We may forget to call `clear()`.
* We may pass wrong `string` into `operator ()`.

`SeparatorInjector::operator()` should be called with the same `string`. We pass `string` to constructor, we don't care about the precondition.