use merge! (with bang) to ensure that cached @all_commands can be modified

 later and retain modifications (e.g. remove_command) — fixes issue #451