RUBYAPI-34 Made ListingCart detect dirty attributes and fixed the

tests

@joshcom take a look please.
This isn't quite right, if this were necessary here, `SparkApi` would be an uninitialized constant