git_snapshot(): Use reset_undo_buffer()
to restrict the commit message to commands that actually cause a change.
autosave(): don't change branches
git_snapshot() incorporates save_state()

I'm considering if a special attribute in commands.yml is needed for
commands that reset the buffer used for commit messages.

It is mistakenly called undo_buffer, we will rename it
command_context_buffer, since it holds the commands
and context for a git commit.

A buffer may not be necessary in the autosave mode
but we already have one and its cool.

I note that that context is not complete, as we have some
new pronouns, notable $this_sequence, which is like
$this_bus, except it only ever contains sequences or undef.
rename $project->{undo_buffer} -> $project->{last_command}
It is still an arrayref. reset by reset_last_command_buffer()
developer config namarc-home
remove obsolete code
dev namarc
namarc option autosave takes options "undo" and "setup"
eliminate reset_last_command_buffer()
autosave, works but every command is targeted
because temporary tracks get regenerated, causing a diff, bah!!
Revert "eliminate reset_last_command_buffer()"

This reverts commit ad20fb1dfd0bd42246ff246eab0d135bb6b11562.

when engine running, we cannot remove temporary tracks,
so we will collect commands in $project->{last_command}
until autosave() executes with the engine stopped.

It turns out to be necessary to have an 'undo_queue'
field for each command.

autosave {
	add command to buffer if
	$text->{commands}->{$command}->{undo} eq 'store'
	reset_command_buffer() if $text->{commands}->{$command}->{undo} eq 'reset';
	return if engine_running();
	save engine position
	remove_temporary_tracks(); # needed for a quiet diff between successive saves
	git_snapshot();
	generate_setup; # recreate temporary tracks
	restore_engine_position();
}

Conflicts:
	src/Git.p
	src/Grammar.p
fix reset_last_command_buffer(): correct target
don't first reset_last_command_buffer() in git_snapshot()
restore original git commit message format to allow multiple
commands in one commit.
rename $project->{last_command} ->{command_buffer},
rename reset_last_command_buffer() -> reset_command_buffer()
sort marshalling arrays @fade_data, @edit_data
to keep serializations more similar
more sorting of marshalling arrays
command_buffer: remove bad, unneeded conditional
more work on autosave()
allow $this_track to be undef during save
Needed this to continue with undo, but not sure of consequences
add attribute $project->{playback_position}
reconfigure_engine(): restore engine position if possible