* Fixed the bug #1622534
* Introduced MistralService class extending oslo.service.Service
that all Mistral components running standalone should extend
* Refactored engine, executor and event engine with MistralService
* Moved most of the startup logic from launch.cmd to individual
corresponding components
* Cluster membership is now under control of MistralService
* Fixed test_join.test_full_join_with_conditions() which previously
had a bug and we were just 'lucky' that it passed due to a
different work of scheduler
* Fixed a number of test cases
* Other minor changes
TODO:
* We now use many launchers (from oslo.service) to launch
services whereas we could use just one which is recommended by
oslo. However, we can't do that because of the api service
that uses many workers. We'll need to look at how to refactor it
moving forward.
* Write tests for MistralService and its derrived classes
* Address a number of TODO comments.
Closes-Bug: 1622534
Change-Id: I34ba6a8b8caf8bea17109e0f259085b373eb6d45