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.
If anything goes wrong in the loop fw and tarw get left open. I'm guessing you've done this because you want to return an error if the Close() calls fail? If so, you could use named return values and then set the error return from with the defer functions. Example here: http://stackoverflow.com/q/19934641