Differentiate between heightfields and normalmaps and treat each appropriately

Right now the code assumes that any `bump` property is a normal map, which might not be a good assumption (it turns out not to be for some of our models).  This change reads the attribute from the collada model and reacts appropriately (treating it as a height field or normal map).

@BrettASwift, thank you for your help with this fix.