Modifications to VisTextDisplay for Outputting HTML-formatted Tables
Improved Formatting for HTML Table Output

- Lots of CSS!
- Column names!
Rename "main.py" to "__main__.py"

Now we don't need to worry about Windows compatibility, the world is a
better place.
Add Output-Format Buttons to the VisTextDisplay

Now you can output multiple things, the dialogue doesn't close after the
first result is saved, and whoop-de-doo.
Add Variable-Name Tokens in Table Output

Who calls VisTextView.trigger() gets to decide the type of object
being displayed!
Improved Table-Output Formatting

- changed it to XHTML Strict
- adjusted font-family to prefer a free typeface, so it works in the
  QtWebKit widget on my computer
Add Ctrl + w and Ctrl + q Shortcut Keys to the vis Windows
Remove Unnecessary Signals; Clean VisController Garbage

The signals and VisController were used by vis9c and prior.
Re-enable the VisOffsetSelector
Update VisOffsetSelector GUI

- add icon
- change "all" button to "none"
- set "Return" as shortcut for the checkmark/submit/whatever
- change the music21 value display from QLineEdit to QLCDNumber, since
  it's not settable and I wanted to
Overhaul VisOffsetSelector and How main.py Calls It

Now it saves lots of space! And it's efficient! Or at least less
inefficient.
Prepare for HTML-formatted Image Output (for Bar Charts, etc.)
Remove chart_view and Related Files; Switch to web_view

We'll now use the previous text_view to display both table-based output
and images.

NOTE: this commit causes breakage I'll fix in the next commits.
Rename test_display Components to web_display Components...

... and make all sorts of changes that require the next commits...
Update Image- and Table-Display XHTML Documents
Improve text_view.py to web_view.py so It's Useful

And modify views/main.py to use the new stuff. So good, so fresh!
Modify .gitignore to Ignore Things in "outputs" Directory

But it'll still pay attention to changes to "about_this_directory.txt"
Add caching to _run_the_experiment()

If an experiment and its settings are the same as the previous one, then
it's not re-run and only the results-displaying thing is called.
Move "R_script.r" into "scripts" Directory; WorkflowManager Uses It Better

- I renamed it to "scripts/R_bar_chart.r"
- the WorkM has a class property with the path to that script
- tests are updated to work with WorkM change
Fix Extension-Detection in WorkflowManager.export()

Now it'll properly detect if the provided pathname already has an
extension, and avoid adding a second one.