Toolbar sub_loc does an exact text match

This deals with the issue of two very similar
sub menu items resulting in choosing the wrong item.

The specific example that requires this change is two sub menu items, in this order:
- Add a new Button Group
- Add a new Button

"Add a new Button Group" appears first in the DOM, and would always have been
selected, despite "Add a new Button" being the expected choice.

This will break toolbar selects that relied on the previous substring
matching behavior, but being explicit in those cases seems like the better option.
toolbar button fixes
Perf UI Bench Testing Code.

Improvements to ui bench.  Use python csv, use pytest_selenium

Use acceptable identifier for Code Style Guidelines for navigate_tree_vms. Use ssh_client fixture.

Use log_path instead of relative path for post processed csv output.

Do not continue test if we can not obtain an MiqUiWorker PID.

Move parse_production_log into test_page_load_times_n_queries.py, use DictWriter to write PageStat objects into csv, multiple fixes for PageStat (Move headers into PageStat, change loadtime to completedin, __iter__ method to produce tuples of 'header, value' for csv writing)

Clarified Select/Cached and dropped 'ed' from request in __str__ of PageStat.

Removed SSHTail connection during __init__, moved tail to __iter__, tailing based on position of file read pointer, strip terminating new line with rstrip()

Soft Asserts and use slowquerythreshold in yaml.

Less warning while logging

Fixing verbiage to accurately reflect page render timings vs 'page load' timings.

Changed test name from load to render.

Added methods to obtain all datastores and all providers.

Added more tests under infrastructure for ui bench testing.

Added navigate_every_quadicon

Adding ui_bench_test.yaml.template

flake8

Added Browsing list accordion contents.
Don't hide errors when unable to get server's version
Merge pull request #1027 from weissjeffm/version-bail

Don't hide errors when unable to get server's version
Pretty all the things

   include Pretty mixin for all the classes we use that have attributes

   also replace partial with closure, map with list comprehension.
Modernized SOPA provisioning tests
Fix category to use versioned name
Merge pull request #1029 from weissjeffm/pretty

Pretty all the things
Update cfme.exceptions

Remove _power_helper usage from provider_crud object
Cloud provider nav cloud->clouds

Add new methods to cloud provider

Infra provider comment fix
Refactor infra.Vm obj

  - add paginator usage (set it to 1000)

  - fix archived and orhpaned nav

  - create now uses CFME UI, create_on_provider uses mgmt_system
Update utils.mgmt_system:
 - EC2 can now set_name (Name tag)
 - shifted responsibility that Vm/instance is provisioned to mgmt_system
 - implemented some missing methods and updated docs

Fix utils.virtual_machines to be able to provision cloud instances as well

Update fixtures.virtual_machines to be usable with instances as well
Add cloud Instance obj

Add EC2 and Openstack instance objects with specific power control options

Redo cloud provisioning and cloud provisioning test
timeout_in_minutes changed to timeout (in seconds)
Added GH marker, fixed one issue in BZ marker
Merge pull request #1007 from jkrocil/cloud-instance-power-control

[Testing] Butt port, infra refactor and various updates all over the place
Don't consider xfailed tests as failed in passed-percentage
Merge pull request #1032 from weissjeffm/artifactor-passed-fix

Don't consider xfailed tests as failed in passed-percentage
Merge pull request #963 from mfalesni/soap-provis

Modernized SOAP provisioning tests