codegen: Handle duplicated URL segments

There are some entities and collections whose names can't be directly
derived by the corresponding URL segments. For example, the following
two URLs contain segments that are equal:

  hosts/{host:id}/numanodes
  vms/{vm:id}/numanodes

But the corresponding types are "NumaNode" in the first case and
"VirtualNumaNode" in the second, so it isn't possible to derive the type
name using only the URL segment.

To address this issue this patch introduces a table of exceptions that
the generator will lookup. This table will initially contain the
exception in the example above.

Change-Id: I7fcbfe5e490bb23aa2e1785560dd016d63e3a9ae
Bug-Url: https://bugzilla.redhat.com/1116119
Signed-off-by: Juan Hernandez <juan.hernandez@redhat.com>
(cherry picked from commit 3586ad0c68c6875827964ed934deb84aa27db5b3)