Validate against zero value baskets

At the moment, the library allows these but PayPal will reject them and the customer is left with a misleading message about "An error occurred communicating with PayPal".

We should raise an exception if the value is zero.