Updated dircopy to do file backups.

A dir copy now produces an AL containing FileCopyActions and
FileBackupActions.
Includes a fix that makes a CopyAction correctly examine symlinks.
In order for the newer form of dir copy to work correctly, backups need
to check file existence before doing anything. They should do this
anyway.
Fixes to DirBlock.to_action tests.

To accomodate the new structure of directory actions, many of the tests
had to be rewritten to acommodate action lists. Changes include handling
of mkdir when ugo.is_root returns true, and handling of recursive
copying of files (os.walk instead of 'cp -r').
A call to makedirs no longer takes place when os.path.exists returns
true on a desired directory.
Merge branch 'bugfix/dircopy-nobackup' into dev