Protected completion

Filter protected and private members from the completion list based on the location and the type we are accessing it on. The change leverages the checkClassPropertyAccess to check if it is a valid access instead of duplicating the code.
is propertyName redundant with teh PropertyAccess node?  Can you not just do node.right.text?