add_effect: fix argument order, polymorphism; new command: dump_effect
  using the as_hash() method, which will be the basis for
  rewriting effects implementation.  there are 91 occurrences
  of direct variable access that will have to be changed.
convert print/say
convert print/say
convert print/say
(re)implement commands: remove_nickname, delete_nickname_definition, list_nickname_definitions
separate commands
add $fx->{alias} to @global_effect_chain_data
for saving in global_effect_chains.json, which may be taking
on the role of a Nama writable config file.
add key $fx->{alias}
afx nickname works, list_nickname_definitions works
but $fx->{alias} is still clobbered
and still a spurious failure message when add_effect <effect chain name>
remove spurious error message
show_effect shows track affiliation when necessary
add_effect(): automatically set name if effect has an alias
minor
fix nicknames clobbered on project load
The patch adds a call to assign_singletons(), which
additional assignments in this case $fx->{alias},
which assign() misses.
Don't autosave() or git_snapshot() under -R flag.
That makes -R suitable for investigating a project
without disturbing it.
doc
move effect name-setting code to lowest level sub.
EffectChain will handle setting surname attributes
clarify
correctly position effect chains
add() method: fix positioning, set surname attribute
eliminate unused class TrackCacheEffectChain