Cart: More naming changes and cleanup

Restructured cart constructor for clarity and consistency.

New naming standard:
* `amount` is removed and to some extent replaced by `value` where
  appropriate.
* `effective` is replaced by `actual` as it's deemed clearer according
  to PR feedback

Also prettified toString methods