Fix silent failures on autoinc PK without an is_auto_increment attribute
Back in
fabbd5cc the refactor of the subsystem left out this corner case,
resulting in drivers without a functioning last_insert_id() to either fail to
retrieve the autoinc value, or in case of the suboptimal ->_identity()-based
implementations ( MSSQL / Sybase ) to *reuse* the last successfully retrieved
value (sigh)
Since the entire codepath is a hot mess, not changing much aside from an extra
pass to enable implicit inferrence of an is_auto_increment setting.
Several different codepaths in the test suite were used to ensure everything
meshes correctly with retrieve_on_insert and similar