Feature Request: support multiple source (exclude) annotations per symbol

Once you start excluding code based on multiple dimensions, the code for defining annotations becomes an unmaintainable nightmare.

For example, in more than one app, I've got the following overlapping exclusions:
- CIQ1 vs CIQ2
- small memory (<= 32KB datafield) versus large memory (> 32KB datafield)
- 240x240 screen versus 218x218
- Font family A versus font family B
- Feature X versus Feature Y

Because each symbol can only have one annotation, you can imagine what the code looks like to specify all possible permutations of these values for each device or family of devices. Sure, if you define logical locals in the jungle it helps, but that only works for OR combinations (excluding something based on A or B). Excluding something based on A and B is still a headache.

If multiple annotations for a single symbol were possible, this kind of thing would be a lot easier. At a minimum, combining annotations with OR would be great, although I think the option for AND would be nice too. I guess for completeness, NOT would be nice.

I realize this is less of an issue if you change behaviour based on inheritance / helper functions, as opposed to excluding everything at the top level (like having 5 different compute() functions for a datafield). But if you absolutely want to save as much memory as possible, there's little choice.

Thanks for reading!