Fix shebang on Ubuntu

Ubuntu is a kind of system where everything after the first space in a
shebang is provided as the first argument. Therefore, we can't allow
generating a script that has more than one argument to Ruby interpreter
in the shebang.

http://stackoverflow.com/a/4304187/11687

References ea0103fbc5ea61fc02577cf3ff3bdadda871dc20

Fixes #569
hub 1.12.1
Explicitly paginate just help text instead of all output

Before we tried to automatically paginate all `puts` output depending on
whether it fits on one page using LESS options. This didn't work as
intended, so now explicitly opt in for pagination for `hub help -p` and
`hub help hub` output.

Doing so enables us to clear the screen reliably upon exiting the pager
without risking single-page output being swallowed.

This reverts commit 45003e19524dafa7dbfe23685eb0e7010b223957.

Fixes #368
Don't allow man page width to exceed 120 characters

Text wider that that is hard to read. Also, on terminals narrower than
120 chars, provide a 1-character right margin to improve readability in
case of vertical splits.
Show `hub <command> -h` short usage help on stdout

Instead of stderr, show this help on stdout because we suppose that the
user intended to retrieve help intentionally.
Merge branch 'terminal-tweaks'
Fix `hub browse` on detached HEAD

Fixes #588
GitHub stopped supporting escaping slashes in compare URLs

When a fix for #466 landed, it was necessary to escape slashes in branch
names with `;` because they weren't supported as a path component in
compare URLs. Now slashes are supported, but GitHub stopped supporting
semicolons as means of escaping.
Add test that project wiki can be cloned
Fix `hub am` for Enterprise URLs

Still won't work for Enterprise gists, but this makes it work for pull
request & commit URLs.

Fixes #584
Bump Aruba & rspec-expectations

Also get rid of deprecation warnings for `should` and `failure_message_for_should`
Merge branch 'update-rspec'
hub 1.12.2
same logic when clone --noop private repos. Fixes #593
improve expectation for hub --noop clone

As suggested by @mislav, the the previous assertion only checked against
"git clone" without parameters.
fix negative assertion checking only first element

expect(x).to_not returns false when the test passes, so using history.all? only
checks the first element of the list. Since expect raises anyway, we
don't need to bother anyway.
Merge pull request #594 from lepistone/fix-clone-private-noop

Fix `git --noop clone` with private repos

Fixes #593
Port `hub am` tests to cukes
Port `hub apply` tests to cukes
Port `hub init` tests to cukes