Add '--depth' to 'git submodule update'

Fixes https://github.com/travis-ci/travis-ci/issues/1867
Merge branch 'master' into ha-feature-gh-submodule-depth

Conflicts:
	spec/shared/git.rb
Make --depth flag optional for 'git submodule update'

The opts path `git.submodules_depth` is up for debate
Define depth_opt in all situations
uncomment out some git specs

but only run them on Travis by default, as a clean room env is recommended
Merge branch 'master' into ha-feature-gh-submodule-depth

Conflicts:
	spec/shared/git.rb
	spec/spec_helper.rb
only run the ssh source_key stuff if in a clean room
test the clean_room tagged specs too
AND all the other specs too
fighting with rspec a little

http://stackoverflow.com/questions/12861627/command-line-to-run-all-examples-in-rspec-including-ones-that-are-filtered-out
add ssh-add in the bash stubs for specs
the composer fix is no longer needed
Change the way that specs are run

Previously we have run the bash script locally, and stubbed out any
commands that could potentially cause destructive actions. In this
commit I have removed the stubs in favour of a DEBUG trap. This has
some advantages:

- We now whitelist commands that *can* be run, instead of blacklisting.
I think this is safer and causes less issues with wrecking environments
where the specs are run.
- It’s possible to test file redirections, which the stubs couldn’t
handle.
Fix specs that broke with new spec-run method
Enable pending specs

These specs both pass now, so we can enable them again.
Add some docs to the new spec header.sh file
Add specs to git.submodule_depth setting
Fix typo in git submodule spec
Merge pull request #251 from travis-ci/ha-feature-gh-submodule-depth

Add --depth flag to 'git submodule update'