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
Stop logging Master all the live long day!
asset precomiled test
Add BZ for upstream ISO
Merge pull request #1023 from psav/bug_iso

Add BZ for upstream ISO
Merge pull request #1019 from psav/fix_log_art

Stop logging Master all the live long day!
Store screenshot errors
Merge pull request #1024 from psav/screenshot_errors

Store screenshot errors
Merge pull request #993 from dajohnso/add_asset_precompile_test

asset precomiled test
Template tracker tools

Trackerbot will be handling more than just template, but for now the
populate script is all we've got. Soon we'll need some scripts for jenkins
to mark templates as tested/usable, and a simple tool for getting the
latest template (and its providers) for a given stream.

Soon: Actually deploy the trackerbot and drop the api settings into env.yaml
Merge branch 'template-tracker-tools'
Quick fix for screenshot_error KeyError
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