Bluesky app fork with some witchin' additions 馃挮 forked from jollywhoppers.com/witchsky.app

Shadow refactoring and improvements (#1959) master

* Make shadow a type-only concept * Prevent unnecessary init state recalc * Use derived state instead of effects * Batch emitter updates * Use object first seen time instead of dataUpdatedAt * Stop threading dataUpdatedAt through * Use same value consistently