Add support for name-collisions when grafting paths during indexing.

Colliding names are now handled properly when indexing: the order of
priorities for renaming is as follows:
	* directories are merged.
	* directories take precedence for a name over a file.
	* files are renamed.

A directory is anything which sets returns True to stat.S_ISDIR.

A file colliding with another file via grafting, at the real FS path of
/real/file/path/filename would be renamed as:
	filename.bup-name-collision.real_file_path_filename.0
	
Note that slashes are squashed to underscores, and the number is
incremented in the case of multiple collisions of the same name. The
renaming is not intended to preserve full name data, since this is not a
supported situation for grafting, and will produce a warning every time
it happens.