Implement command routing.

Each object in the DataContext hierarchy, from the currently focused
element up to the containing window, can implement
ICommandHandler<TCommandDefinition>. If no handlers are found, a global
handler will be used, if one exists. If no command handlers are found,
the command is disabled.