Make WC_Product psuedo-asbtract to avoid fatal errors

This is a proposed patch to create a "psuedo-abstract" `WC_Product` class and avoid inflicting the white screen of death on sites upgrading to WC 2.0.

WC 2.0's product factory is awesome, but I think the breaking change to `WC_Product` is dangerous. Any site that has had a freelancer add some code over the last 15 months is potentially at risk of going down for something that until 2.0 was perfectly OK.

The patch is pretty straight forward, though a bit of a hack and not necessarily ready for prime time. Rather, I wanted to use it to start discussion with @mikejolley & @coenjacobs about options for a friendlier approach to backward compatibility.