Initial support for traits
This adds initial support for traits.
Missing features:
- traits depending on other traits
- generating more specific trait specs for particular instances
These features will be handled in future MRs.
Edited by Lennard Gäher