Return Cask::SystemCommand::Result object

from Cask::SystemCommand.run

* stderr and stdout are now separated, though both are available
* exit status can be read from the result object
* plist parsing is more naturally handled in the result object.
  The :plist argument to the run method was removed.