Added basic parsing/sema support for device/kind context selector.
Nit: bool RHSIsSubsetOfLHS = isStrictSubset(RHS, LHS) saves you a line later.
What is wrong about cpu, gpu together?
When several traits sre used, the logic and is applied. So, cpu,gpu means that the target is cpu and gpu at the same time.
Address comment
More comments?
LGTM.