Some major changes to fix a bug and change behavior; most of the changes
are in tfocs_iterate and tfocs_initialize. To understand the changes,
note that most algorithms use two sequences of variables, the "x" and
the "y" sequence. The return value is the "x" iterate, but stopping
criteria is via the "y" iterate often, since this value is in effect
pre-computed. And if data recording was specified, this was done on the
"x" variable at an additional cost. Now, the policy is to use whichever
variable requries less computation (usually the "y" variable), but you
can override this behavior if you wish: set
opts.stopping_criteria_always_use_x = true to always use "x" to
determine the stopping critier; set opts.data_collection_always_use_x =
true to always use "x" for data collection; and set
opts.output_always_use_x = true to always use "x" (and when appropriate,
its corresponding dual variable). By default, we use whichever is
cheaper, except for the output, in which case we use whichever gives a
better objective value.

Due to these major changes, many smaller changes were made to make the
code work again.

Also, the continuation script now uses the previous stepsize as the new
stepsize.

We have also added a new restart feature that uses the gradient, not
function values. This is due to Brendan O'Donoghue's idea. This can be
controlled by setting opts.autoRestart to either 'gra' or 'fun' for
gradient or function criteria, respectively. These automatic restart
criteria take effect whenever opts.restart < 0.

Also new is opts.printRestart; if true (default), this will print output
whenever a restart occurs.