Clean up _run_vagrant_command.

I thought _run_vagrant_command was becoming too complicated, so I split
it into two simpler commands:

- _call_vagrant_command, which uses subprocess.check_call to run a
  command without capturing its output.  This also allows for stderr to
  be silenced.
- _run_vagrant_command, which uses subprocess.check_output to run a
  command and return its output.
Remove unused _confirm method.
Normalize whitespace.

Use 4 spaces instead of tab characters.
Move verbosity/quiet flags from `**kwargs` to instance vars.

Unfortunately, this is a breaking change for people who use these
keywords.  Nevertheless, the proliferation of **kwargs in the method
signatures is a bad smell.  The code is not self documenting.  It is not
clear from the code what keywords you can pass, and it will accept
keywords it does not use.  Also, as new methods are added, their
signatures must be polluted either by the vague `**kwargs` or a host of
seemingly irrelevant keywords, like capture_output and quiet_stderr.

Moving the verbosity and quietness functions to instance variables from
function parameters makes their functionality more well documented,
simplifies and makes more explicit  many method signatures, and
maintains the desired functionality.

For a "loud" instance, use vagrant.Vagrant(quiet_stdout=False).  Set
quiet_stderr=False for an even louder version.

In keeping with past behavior, vagrant instances are quiet by default.
Fix provisioning test.

Pull request #21 broke `test_provisioning`, I think, by removing the
provisioning from the basic single vm Vagrantfile.  I added a
Vagrantfile for testing provisioning specifically, and tweaked the
setup_vm and teardown_vm methods so that they can setup a test function
with an arbitrary Vagrantfile.