fix unloadAll not actually unloading all

`unloadAll` was, until now, unloading every other record in the records array.

`dematerializeRecord` calls slice which would effectively pop another record without actually properly unloading it.  When the `findAllCache` was present calls to all would return the records that had not been unloaded correctly.

The test for this has been updated to correctly cache the results prior to unloading.