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).
Introduce Parse{Unit,Service,Machine}
Merge branch 'master' of https://github.com/juju/juju into 106-parsetag-refactor

Conflicts:
	state/api/deployer/unit.go
	state/api/firewaller/service.go
	state/api/provisioner/machine.go
wip
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.
Update for juju/names part 3
Final tweak
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.
state/backup: gofmt
state/machine: use WaitAgentPresence, rename AgentAlive
state/machine: StartSync in SetAgentPresence
state/machine: check IsManager and only Sync presence watcher
presencer: make the presencer interface official
state/presence: fixing issues from review
Merge pull request #106 from axw/state-backup-gofmt

state/backup: gofmt

Run `go fmt` in `state/backup`.
Bug #1328716: Clean up CONTRIBUTING a bit.
update to latest juju/names
Merge branch 'master' of https://github.com/juju/juju into 106-parsetag-refactor