Cart: Support empty carts.

To simplify the usage of a cart, we need to support empty carts. This is
for instance used for reports that can be empty.

Ping @adamvoncorswant @softarn 
Why? Is the non-static call better in any way? Just curious...