Restructure the testing "flag" mechanism

Was previously local to testing/virtualbox.py; is now promoted to a proper
API on the testing instance objects (instance.has_flag(name)) so that it
can be used by individual tests as well.
Reset VirtualBox instance state in __exit__()

The instance flags __installed and __upgraded weren't reset, so while
testing 002-late-upgrade, __upgraded would be True before actually
upgrading.
Fix crash on /showbatch in preview mode

Use of 'review' as an unqualified column name was ambiguous in a query
joining 'commentchains' and 'commentchainchanges' since they each have
a 'review' column.

Fix by dropping the 'review' column in 'commentchainchanges', which served
absolutely no purpose, since it also has a 'chain' column that references
a row in 'commentchains', which in turn references the review.  In fact,
the 'review' column in 'commentchainchanges' wasn't used in any queries.

Extend 001-comments.basic.py, which creates various batches, to load the
preview /showbatch?review=X before submitting a batch and the corresponding
/showbatch?batch=Y after submitting, to at least verify that they load
without crashing.

To make that easier, extend the /submitchanges operation to return the id
of the submitted batch.

Recent regression introduced by:

694ba157 "Various /showbatch improvements"