Moved the updating of quantities into the cart. Cart items now get updat...

...ed recursively (i.e. if you update the quantity of the "Top Level" item all the children's quantities get updated as well - this allows prices and tax to be calculated correctly).

As part of this I've updated the DB structure slightly so a CartItem with no parent has a null parent_item_id field set rather than 0. Zero implies it has a child with an ID of 0 (which is possible in the DB - Null implies that there is no parent).

This fixes SpeckCart Issue:#25