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.
How can this possibly work? The modification times on the files in the tar file will be different every time.

In fact, e3b0c44... is the sha256sum of no bytes at all:

% sha256sum < /dev/null
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  -
%

so it looks like the sum logic isn't working at all.

I suggest that it's probably better to check the actual contents of the resulting tar file
(and also check that the checksum matches the .tgz file) rather than checking
that the checksum is some expected value.