[Delivers #84086356] Moved value protection code to type coercion. Adds ...

...more types for attributes.
It seems like these are all the same type, perhaps 'positivenumber'? Remember the type system exposes these, e.g. it allows these to be used in attribute tags. Also, x and y won't be as nice but that can be added later...