Item components framework (#2760)
* Item data component framework
* Only register mapping when needed
* Field modifiers
* Reorder
* Move `DataComponentAdapter`
* Meta cleanups
* s
* Minor cleanups
* Remove `MaterialTag` parts
* Semi-finalize components system
* Add `remove_component`
* `setIfValid`: support all object types
* `toPaper` -> `fromDenizen`
* Fix error
* Fix generics naming
* Meta
* Minor cleanup
(
commit: edf91f4)