Re wrote backup in go

Previously restore was a cmd plugin writen in bash.
Backup was implemented as a go function, still not in use.
Tests where added since the previous implementation had none.
backup package includes:
 * BackUp function, which performs the actual back up.
 * tarFiles which creates a tar or tar.gz/tgz depending
on the output file name given.
 * runCommand which is a convenience function to simplify testing
since the back up process requires calling external executable
mongoexport.
Refactored according to reviews

After reviews from @rogpeppe, @howbazaar, @mjs and @voidspace y
refactored a large part of how the tar files are tested, and
how the tar files are generated (most of that logic is to be
credited to @rogpeppe).
Now tar/tar.gz are built recursive and support prefixes to be
stripped if necessary (equivalent to -C on gnutar).
Tests check for files inside the tar and for the sum
Backup returns (filename, sum, err) instead of previous (filename,
sumfilename, err).
Improved after review

I improved the tests to check file contents on tar/tar.gz files.
I made some corrections on the back up paths.
I changed the way recursion is handled in tar for a recommendation
from @rogpeppe in terms of path walking.
Made corrections asked during review

I unquoted the admin password and made a bunch of trivial changes.
Merge pull request #79 from perrito666/translate_backup_to_go

Re wrote backup in go

Previously backup was a cmd plugin writen in bash.
Backup was implemented as a go function, still not in use.
Tests where added since the previous implementation had none.
backup package includes:
 * BackUp function, which performs the actual back up.
 * tarFiles which creates a tar or tar.gz/tgz depending
on the output file name given.
 * runCommand which is a convenience function to simplify testing
since the back up process requires calling external executable
mongoexport.