Update to Sergei Nikulov's fix for issue #15

This is adoption of @snikulov 's fix for #15 - _No rows affected after UPDATE command_

Clarify supported sequence of ```statement::execute(false|true)``` and ```statement::get_affected_rows()``` calls across all backends:
1. ```execute(false)``` and empty destination does not execute statement, but prepares for subsequent ```statement::fetch()``` requests.
2. ```execute(true)``` and empty destination calls requests backend to execute statement.
3. ```execute(false|true)``` causes bulk fetch to destination, with ```withDataExchange=false|true``` ignored.

Moved relevant test to common tests, confirmed it passes for all but Oracle (```get_affected_rows``` not implemented) and Firebird (I have no means to test).

Related discussion at http://sourceforge.net/mailarchive/message.php?msg_id=30312517

Thanks to @snikulov who first proposed this behaviour as reliable and consistent option, yet not intrusive, and submitted as pull #58