Fix/entities are not optional in maltego transform request message

"Major" bug discovered, when parsing XML messages from Maltego.

See commit messages. 

Attached is debug versions of safedexml for future reference if such a bug ever resurfaces again.

I still suspect that the safedexml.fields.List has a minor bug in its implementation, as discussed in the commit messages. However I don't have the time nor the knowledge to investigate further. As far as I can see the project is semi dead, so I don't suspect that it will make any difference trying to make bug reports at the safedexml github page.
I just wan't to make sure I understand your argument for backwards compatability.

You are saying that someone might be accessing a private/internal field (as indicated by the leading underscore) of the request message class?
In any case, no one should use private/internal fields, besides the library itself.


Currently I can only think of two possible outcomes for setting this value. In the general case, you instantiate the class with no arguments, in which case it gets a non-entity back from self.entity, which results in self._canari_fields being set to the empty dictionary. Aka in this case the field contains no valuable information anyways.
The other, case is that you give a list of entities as argument to the constructor of the request message. However I can't possibly think of an old solution that is using this way of constructing request messages (as the preferred way of adding entities is with appendelement), and also reading the private/internal (which it should not).