Split-up ImportLibrary.importImage for async-use

The more or less monolithic method importImage needs
to provide many more steps that clients can possibly
cancel.
fileExists() now checks only the database

In order to deal with the various (de-)sync issues
that can arise between the database and local file
system, all methods are being converted to solely
check the database state. Exceptions will be used
which explain any de-syncs.