Fix PHP Product Class and Stats PHP errors
Errors were result of instantiating a product using a product id corresponding to a product that was deleted.  As this is a normal occurrence as products come and go from a store the instantiation isn't the problem, but doing some operations on it is a problem.

Before doing these operations a check is made to see if they are permitted.
update doc block @since
Update @param, as none are provided.
Removed extra white space on $this->post
Don't save cart to database when nothing has changed
Calculate a cart signature when a cart is loaded from the database
Recalculate the signature when a cart is being saved, compare the signatures, don't save if they are not different.
ignore some cart properties when calculating cart signature, prevents array cursor values, or values that get reset on load, from changing the cart signature
adjusted attributes that cause a change to be detected
Removed commented out lines
Use json_encode rather than serialize