Refactor ask() to use Highline; support echo:false.

Note: a gem dependency for highline has been added by this commit.
:panda_face: Added tests for after/before hooks

https://github.com/capistrano/capistrano/issues/1004

The changes of #938 affect the order the task executes. The "prerequisite" task seems to be running as
if it was defined in a after block, which makes sense, since it is now invoked by the task instead of being a prerequisite.

Since there were missed tests and @juanibiapina added simple tests in #1005, and were modified in this commit to cover
current business logic of the master.
Merge pull request #1024 from miry/before

Added tests for before/after hooks
Merge pull request #1028 from mbrictson/highline-ask

Refactor ask() to use HighLine; support echo:false
Fix compatibility with FreeBSD tar
Improve the output of cap --help.

Remove options documentation for rake options that aren't applicable
to capistrano, briefly explain correct cap usage, and point users to
http://capistranorb.com.
Merge pull request #1020 from robbertkl/freebsd-tar-fix

Fix compatibility with FreeBSD tar
Improve compatibility by making options optional for the question initializer
Merge pull request #1023 from mbrictson/improve-help

Improve the output of cap --help.
Cucumber tests will now run on the latest Vagrant

This removes the dependency on the `kuroko` gem and uses the Vagrant
command line application to control the virtual environment. The
`vagrant` command should be in your path, but if it isn't the path can
be set with the `VAGRANT_BIN` environment variable. This may even work
on older versions of Vagrant, but they are untested.

The `VagrantHelpers` module was added to mimic some of the API that was
provided by `kuroko`. The `RemoteCommandHelpers` module was modified to
accommodate those changes. Any non-zero exit status on a remote command
will raise a `VagrantHelpers::VagrantSSHCommandError` and should be
expected by any tests using the command helpers. All existing tests
work as expected.

In addition, a couple of minor changes were made. The TestApp utilizes
the Pathname library but does not require it. This was causing the suite
to fail for me so I added an explicit require. Also, the test for the
existence of a release directory would give a false positive on
subsequent runs if the `KEEP_RUNNING` option was used. I added an
`at_exit` that removes the test deployment directory to clean up the
box for the next run.

Documentation was also added to the README for how to run the test
suites.
Merge pull request #1027 from tpett/new-vagrant

Cucumber tests will now run with latest version of Vagrant
Allow to customize username in revision log via  variable
The ask() refactor did not make the cut for 3.2.1.

The 3.2.1 release was made before the ask()-highline refactor was
merged. It should therefore be in the master section of the CHANGELOG,
not 3.2.1.
Merge pull request #1032 from mbrictson/fix-changelog

Fix 3.2.1 CHANGELOG re: ask() refactor
Fixing typo in database_password
Merge pull request #1034 from deitrick/patch-1

Fixing typo in database_password
Convert specs to RSpec 2.14.8 syntax with Transpec

This conversion is done by Transpec 1.13.1 with the following command:
    transpec

* 11 conversions
    from: obj.should
      to: expect(obj).to

* 5 conversions
    from: == expected
      to: eq(expected)

* 2 conversions
    from: expect(collection).to have(n).items
      to: expect(collection.size).to eq(n)

* 1 conversion
    from: collection.should have(n).items
      to: expect(collection.size).to eq(n)

* 1 conversion
    from: obj.should_not
      to: expect(obj).not_to
Clean up Capfile comments
Merge pull request #1073 from mbrictson/patch-1

Clean up Capfile comments
Switch to high-quality SVG badges

This is so that the badges don't look like a blurry mess on retina screens.

Note that this also fixes the Travis status, which was previously reporting green. It is now correctly showing "error", matching the status shown here: https://travis-ci.org/capistrano/capistrano