Don't just concat new results with old; use keyname to compare.

Multiple calls to sync were appending the results of the new request onto the existing state... in order to hack around this I added a really naive comparison between elements.

Also, I had to add a `_getResults` option to specify how to get data from the HTTP response.