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
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"