make @:allow work for child classes and implemented interfaces (cloes #2162)
disallow structure matching against inaccessible class field
allow dollar identifiers in all string places of the syntax and fail during typing (for reification)
- copy :access and :allow metadata to abstract implementation class
- use abstract path instead of implementation class path when checking acl
 (closes ##2166)
feature fix