Breaking changes:
- Options are no longer loaded recursively to avoid infinite loops when using data objects that reference themselves
- setItem() now requires a full object and partial merges are no longer supported (again, to prevent infinite loops)