detect: Fixing multi-node memory detection

On some hosts, the memory is reported like "memory:x" instead of
"memory". This case wasn't managed at all by the existing code which
missed to grab the memory information in such case.

If memory:x is present, then the ':x' value is used inside the bank name
like  (x is just a number >=0)

before: bank:0
after:  bank:x:1

Note that the amount of banks is reported for the whole system and not
per ':x' memory node.

This does fix the problem of memory detection on some HP BL460c servers.

Thanks fredl for the xml trick.