Updated KO-cart to make better use of the data-binding in knockout

Fixes the knockout cart to make better use of ko.observables() to properly update the UI in the cart.

Added necessary code additions and refactorings to make both the HTML and the JS reflect a proper knockout application.