First pass at improving WPSC_Controller_Cart::add()

* Adds filter parity to new changes in wpsc_add_to_cart().
* Redirects back to product on appropriate errors.
* Adds error handling for the now less likely scenario of adding a variation-product to the cart without variation values.

Still a bit of weirdness here to work out, but we're getting there.