test/insert: add known broken tests for indexing failures

These tests are written with the assumption that we want all indexing
failures to be considered as failures by notmuch insert.
cli/insert: add fail path to add_file_to_database

Handle failures gracefully in add_file_to_database, renamed simply
add_file while at it. Add keep option to not remove the message from
database if tagging or tag syncing to maildir flags fails. Expand the
function documentation to cover the changes.
cli/insert: require succesful message indexing for success status

Add --keep option to keep any remaining stuff in index or file. We
could distinguish between failures to index and failures to apply tags
or maildir sync, but for simplicity just have one.
test/insert: check that indexing errors are accepted with --keep

This is overkill for the current code path, but should provide some
robustness for future changes in error handling.