Don't cache entire dataset object in pushState

Only cache what is needed. This improves performance in some cases (less disk thrashing) and fixes errors in Firefox when working with large datasets.

Fixes issue #80