Restrict where annotations can be applied

Some annotations are only valid in specific contexts.
If an annotation is found in the incorrect context, return
an error when parsing the ADIL language.

Test: runtests.sh

Change-Id: I64bf6e6f5de7c38d6f6928acbe55022ab9de441a
3 files changed