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.