Refactored and fixes issue with cart messaging

@tsanko made some refactoring changes and also fixed the issue with success message not shown. Please take a look and pull in.
I think I know what the issue is. The save cart method returns the $promise, and it gets resolved in the controller. I think we need to relook at the pattern we are using for cart service, and see how to best have this abstraction. But that is a topic for later.