Patch product extension points

This adds a couple of extension points for Product and ProductVariation. Sorry about the additional fuzz from whitespace changes. The change to Product could also be solved by disabling the default updateCMSFields hook and then calling that one. If you'd prefer to go that direction I can do it that way and submit another PR. Just let me know. 

I think it's pretty important to be able to update the fields for Product AFTER all the tabs are created, though, if any kind of polished UI is going to be possible for extensions.