IntraHealth - changed grouping from product_name to product_code

needs reindexing all IH fluff's
It appears that we're always iterating over the items in this dict and then inspecting the values. A more efficient way to do that would be to transform this constant before using it:
```python
_PRODUCT_NAMES = {
    u'diu': [u"diu"],
    ...
}
PRODUCT_NAMES = {v: k for k, values in _PRODUCT_NAMES.iteritems() for v in values}
```

Then below, instead of
```python
for k, v in PRODUCT_NAMES.iteritems():
    if product[property].lower() in v:
        # do something with k
```
You can do this:
```python
k = PRODUCT_NAMES.get(product[property].lower())
if k is not None:
    # do something with k
```

This technique works as long as the values are unique, which appears to be the case so far.