Consistently use '_' for created_by metadata on images
implement sql migration support for QonoS

- initialize a new migration repository, 'migrate_repo'
- add version scripts to create tables as declared in models.py
- introduce CLI, 'qonos-manage' to run migration commands like,
  version_control, db_version, db_sync, downgrade & upgrade
- make 'qonos-api' db initialization to add the database to the
  migration repository for version control
- implement tests for testing the migration & changeset scripts.
- add 'sqlalchemy-migrate' dependancy to the pip-requires
- introduce MANIFEST.in for including migration config files as part
of the distribution package.
Merge pull request #273 from venkateshsampath/impl_sql_migration_support

implement sql migration support for QonoS
Uses unittest2 module

skipTest functionality provided in py27 and py3 can be used in py26
using this unittest2 module.
Merge pull request #275 from komawar/use-unittest2

Uses unittest2 module
Merge pull request #274 from ameade/created-by-mismatch

Consistently use '_' for created_by metadata on images
Fix duplicate scheduled images

This patch fixes the issue of the same job sometimes being picked up by
two workers when polling for jobs concurrently.

- In order to avoid the concurrency issue, the sqlalchemy's optimistic
  locking feature is used.
more info:
http://docs.sqlalchemy.org/en/rel_0_7/orm/mapper_config.html?highlight=uuid#sqlalchemy.orm.mapper
- Based on optimistic locking feature, a new column 'version_id' is
  introduced in 'jobs' table that will allow versioning of records when
in use.
- Because of versioning of job records when accessed, if two workers try
  to pick up/update the same job, a StaleDataError will be thrown and
hence prevent the duplication of scheduled images.

related to rm1348
Merge pull request #277 from venkateshsampath/duplicate_scheduled_images_fix

Fix duplicate scheduled images
Send latest payload info for job end notification

Send notification on change in job status
Fixes #RM196 and #RM3043
The payload sent had old job information.
It should be updated when a job is updated.
We need to track the status of jobs.
This patch takes care of sending a notification
whenever there is a update on job and an actual change in
status.
Also ensure that the latest job is sent in the payload
Fixed some pep8 errors.