Combined commands

This PR adds a feature to ReactiveCommand to create a ReactiveCommand that invokes several sub-commands, and whose CanExecute reflects whether all of the child commands can execute. Here's how it works:

```cs
var cmd1 = new ReactiveCommand();
var cmd2 = new ReactiveCommand();

cmd1.Subscribe(_ => Console.WriteLine("Command One ran!"));
cmd2.Subscribe(_ => Console.WriteLine("Command Two ran!"));

var newCommand = ReactiveCommand.CreateCombined(cmd1, cmd2, cmd3);

newCommand.Execute(null);

>>> Command One ran!
>>> Command Two ran!
```