Moving storage logic out of backup runner class

* Adding a StreamReader to handle segment logic
* Refactored base classes to make subclasses easier

Closes-Bug: #1251649

Change-Id: Ic22bb42827e0f5dc593df8705737fe27c1feabb8
Properly mark a backup as FAILED if the process failed

* Add a try except around the backup runner
* Moved conductor update calls outside of the scope of
  the runner with statement to catch exceptions in
  the __exit__ method.

Closes-Bug: #1256384

Change-Id: Icf539ab75314476b42a6e175c087ff61cc3608e1
Removes dead code from trove/tests/api/root.py

Reason:
- ./trove/tests/api/root.py uses undefined method
  create_mysql_connection in log_in_as_root.
- log_in_as_root is not used anywhere in any tests.

Changes:
- Removed log_in_as_root method from ./trove/tests/api/root.py

Change-Id: Ia5ab6538cab54a98b8057d0bf4c39dda9c7e3bf8
Closes-Bug: #1261174
Cleans the method init_engine

Reasons:
- init_engine contains code after return statement,
  which is of no use.
- the statements used are also of no purpose as
  they use unavailable variables.

Change:
- Code lines after return statement are removed.

Change-Id: Ibfd1f0de1d9200c0f1a724345fa9ef744da1ce7e
Closes-Bug: #1261169
Changes command to create the directory

Reasons:
- os.makedirs since running under normal user access
  will not be able to create the directory at
  root locations like /var/lib.

Changes:
- Used utils.execute like used at other places
  for working under root access.
- Test changed to test utils.execute instead of os.makedirs

Change-Id: Ie2313ae4cc22ac4a9baa4d8e099080f227a980c4
Closes-Bug: #1261492
Merge "Moving storage logic out of backup runner class"
Merge "Properly mark a backup as FAILED if the process failed"
Merge "Removes dead code from trove/tests/api/root.py"
Merge "Cleans the method init_engine"
Merge "Changes command to create the directory"