Addition of http calls and promises to PriceList

See this article[1] for why we need to call `$rootScope.$apply()` in the unit tests:
http://stackoverflow.com/questions/14746314/angularjs-why-is-apply-required-to-properly-resolve-a-q-promise
Use spy rather than raw JS object