gdb/testsuite: avoid duplicate test names in gdb.dwarf2/dw2-zero-range.exp (and more)

Tom Tromey noticed that dw2-zero-range.exp reported a duplicate test
name.  This happens because have_index calls get_index_type with the
default test name.  Refactor the test to avoid this, while cleaning a
few other things, the most important being:

 - factor out the relocated and unrelocated parts in their own procs
 - give different names to generated binaries in different variations,
   such that all binaries are left in the test output directory (this
   makes it easier to debug a specific variation)

Change-Id: I7cdf7a344834852fbb035d7e0434559eab6b1e94
1 file changed