Let clients register artwork sizes they want to be pre-cached

- clone prefs hash before dealing with it, or the change handler will
fail
- don't register change handlers in modes where they are not supported
- trigger an artwork scan when a new spec is added