don't choke when :args is not present

in _process_options
allow command.run without arguments

ie only an exectuable
test valid keys in _process_options

add monkeypatch on Hash in utils.rb for `assert_valid_keys` method
Merge pull request #2851 from rolandwalker/system_command_followups

System command followups