Do not delete schedule if nova returns 404

Currently, if nova returns 404 qonos worker assumes the instance
does not exist. However, this inference might not be appropriate
in case of intermittent issues leading to potential customer data
loss.

Hence, the schedule will only be deleted through the nova extension.

Also, adds some logging.
Merge pull request #298 from komawar/dont-delete-schedules-on-404

Do not delete schedule if nova returns 404
fix nova_client creation logic to use right tenant

Co-authored-by: Amala Basha <amala.alungal@rackspace.com>
fix sqlalchemy's job.update() call to handle race condition

- the current query(job).update() method of sqlalchemy doesn't consider
  the version_id column introduced to handle race condition (Optimistic
Offline Lock).
- modified the update call to use session.add(job) & session.flush(job)
  so that sqlalchemy can use the optimistic offline lock feature using
job table's version id column.
- added test to ensure the version_id column is used as expected.
- fixed a minor pep8 issue on test_jobs
Merge pull request #300 from venkateshsampath/fix_nova_client_factory

fix nova_client creation logic to use right tenant
Merge pull request #296 from venkateshsampath/rm1348_sqlalchemy_fix

fix sqlalchemy's job.update() call to handle race condition
functional tests for Snapshot Job Processor

grouped tests under following classes,
- TestSnapshotProcessorJobProcessing
- TestSnapshotProcessorPolling
- TestSnapshotProcessorRetentionProcessing
- TestSnapshotProcessorNotifications
- TestSnapshotProcessorImageName

Co-authored-by: Sridevi Koushik <sridevi.koushik@rackspace.com>