This correctly handles tax for countries/inc or ex tax inclusive
prices/rounding.
Coupons still require more testing, and we need a better way to store
discount amounts. PayPal also needs tweaking to pass the correct totals
when using inc. prices.
Cart items are indexed by an md5 hash rather than numeric keys so we
can add custom data to cart items.
Plugins can hook in and add meta data, load it, and display it. The
adjust_price() function lets you adjust a products price too since its
loaded and stored in the cart on page load.
All works like a dream, all thats left is to show the values on the
cart page, and store them in the order item meta. Order item meta does
need a slight change though, to allow data with the same keys. Working
on that next.