Merge branch 'master' of https://github.com/Phoenix1708/OpenAcademy_OpenStack_Flyway

Conflicts:
	flyway/flow/imagetask.py
	flyway/flow/keypairtask.py
	flyway/flow/tenanttask.py
	flyway/utils/db_handlers/tenants.py
Merge branch master of https://github.com/Phoenix1708/OpenAcademy_OpenStack_Flyway

Conflicts:
flyway/flow/flow.py
flyway/utils/db_handlers/keypairs.py
flyway/utils/helper.py
This is indeed a bad commit with countless convention violation, but since we will move everything into the folked repo...

The main purpose of this commit is to introduce FunctorTask and fix some redundant code in database related code

It will be really appreciated if you could do your following commit in comply with the convention (https://wiki.openstack.org/wiki/GitCommitMessages) even though everything is going to be moved. Thanks !