Support config invariant file copying.

Rewrite CopyFile/HardLinkFile in terms of DefRule and also provide
CopyFileInvariant and HardLinkFileInvariant which generate just one DAG
node across all configurations. They are useful when you just want to
copy some files around and the source and target locations are always
the same (they don't depend on the configuration in use.)

Add simple FileCopy example.