#1307: Parsing crashes on unknown trait

If a class consumes a trait that is not known in the project then it is
represented as a string in the list of traits instead of a
TraitDescriptor.

The code that pulls in inherited methods and properties did not account
for that scenario and always tried to access the trait as if it was a
descriptor.

With this commit I have added a condition that the methods and
properties of a trait should only be inherited if it is a
TraitDescriptor. Tests are added to safeguard this behaviour.

In addition a 'loose' method in the test case was removed that served
no purpose.