Fix broken Babushka::Base namespacing in GitFS.

This should be found by the test suite, but at the moment the suite includes the Babushka module, so Base is defined when the tests run. That's bad and should be fixed separately.

closes gh-291
Merge branch 'git-fs'
Don't include Babushka in the top-level namespace to run the specs.
Fix top-level constant refs to get the specs running (~60% failing).
Fix constant references in the specs. (Green again.)
Merge branch 'git-fs' into spec-namespacing, fixing GitFS namespacing error.
Merge branch 'spec-namespacing'
work around noisy 'conflicting chdir during another chdir block' warnings

If the popen method is used with the :chdir option within a Dir.chdir
block on ruby 1.9 (fex inside a in_build_dir block), a warning is issued that is needless distraction here
since we're about to exec anyway.

See the implementation of Dir.chdir
http://www.ruby-doc.org/core-1.9.3/Dir.html#method-c-chdir
Add String#to_utf8, which converts receiver to valid UTF-8, replacing invalid chars with '?' as necessary.

gh-292
Separate some processing in #log.
Employ String#to_utf8 in LogHelpers to handle bad encodings.

gh-292
Merge branch 'utf-8'
Add coding for the utf-8 literals in the String#to_utf8 specs.
Skip String#to_utf8 (and its specs) on ruby-1.8.
Merge branch 'utf-8' again: support ruby < 2.0.
Naively accept splatted & array sudo commands.

This implementation won't handle spaces or quotes, or anything else that has to be escaped for the shell, but it gets the first set of specs in.
Join and escape splatted and array sudo commands properly.
Spec GitRepo#repo_shell.
Spec and document GitRepo#repo_shell?.
Add #run_as_owner? boolean option to GitRepo.