Fix placeholders test to really check whether the statement fetch failed, and to retrieve all results first so that num_rows() gives the actual number of rows fetched. Remove prepared_statement::operator bool(), since its use case is very small and it was easily mis-interpreted.
Fixed re-binding parameters and results. Renamed bind to bind_append and bind_results to bind_results_append; created new bind and bind_results that remove all existing bound parameters and results before starting to re-bind. Added a test that verifies this works for input parameters to INSERT and result parameters from a SELECT.