Use a macro for player method generation

The PLAYER_COMMAND_FUNC() macro will generate a function that calls the
correct synchronous method on the player given that the method args
follow conventions.
Add the player "stop" method and cli command

The "stop" method commands the player to stop
cli: use format string for printing metadata

Fixes an issue where metadata info might be mistaken for a format
string causing a segfault.