Check modified files, pass select JS to jshint, run phpunit in vagrant

Allow pre-commit to check unstaged files (use -m)
Only check JS files that have been modified or staged
Attempt to run phpunit in vagrant if in a vagrant project
Run phpunit locally if WP_TESTS_DIR env var is present
Only run phpunit if there are changes to PHP files
Eliminate PHP 5.3 requirement, replacing namespaces and closures
Account for renamed files in pre-commit hook
Run Travis tests on PHP 5.2
Improve relative paths for phpunit; update install-wp-tests.sh
Finish with 5.2 compat; exclude bin from syntax check
Fix symlinked dirs for Travis; remove PHP 5.2 for Travis
Move WordPress.org SVN checkout outside of Git root
Explicitly reference bash (not dash) for pre-commit hook

Props http://stackoverflow.com/a/2462357/93579