feat(commands): allow backends to declare their subcommands
As an alternative to directly adding their commands in a register.py file under
the root optimum directory, this adds a decorator to declare a subcommand that
can be used by backends when they are loaded.
This will fix the issue of backend subcommands 'disappearing' when optimum is
upgraded without reinstalling the backend.