Change LinuxAdmin.run to return a CommandResult object.

LinuxAdmin.run(cmd).output      - returns the standard output.
LinuxAdmin.run(cmd).exit_status - returns the exit code.
LinuxAdmin.run(cmd).error       - returns the standard errror.
LinuxAdmin.run(cmd) for a bad command will raise the original exception, such as: Errno::ENOENT: No such file or directory.

LinuxAdmin.run! was added to behave similarly to the old run's functionality in that it raises an exception on failures:
1) CommandResultError is raised on a non-zero exit status.
2) The failed system call exception(such as Errno::ENOENT) is raised on a bad command.
Update classes and examples to use the new run!/run interface.

run was changed to run! except where we need to check the exit_status, see below.

1) To execute a command for the side effect only (raises on non-zero exit and bad command).
  Before: run(cmd, :params => params)
  After:  run!(cmd, :params => params)

2) To execute a command and check the exit_status (raises on bad command only).
  Before: run(cmd, :return_exitstatus => true) == 0
  After:  run(cmd).exit_status == 0

3) To execute a command and capture the output (raises on non-zero exit and bad command).
  Before: output = run(cmd, :return_output => true)
  After:  output = run!(cmd).output

4) To execute a command and capture the standard error where the command exits 0.
  Before: Was not possible previously.
  After:  error = run!(cmd).error

5) To execute a command and capture the standard error without checking the command exit status.
  Before: Was not possible previously.
  After:  error = run(cmd).error
Fix some specs spawning when they shouldn't be.
rspec-expectations 2.14.x discards do/end blocks passed to raise_error.

It is fixed on master, see: https://github.com/rspec/rspec-expectations/commit/b0df827f4c12870aa4df2f20a817a8b01721a6af
Raise a specific error when credentials are invalid
Updating spec to verify CredentialError is raised when appropriate.