Minor Changes to Comments and Contract

Edited some comments, renamed `MetaProperty.declaringClass()` and generified `MetaProperty.set(Object, Object)`.

I also have some questions, which I put into the code and additionally added as comments on this pull request. Of course I plan to remove them if this pull request is considered to be merged.
Since `null` is no valid property name, I would assume that passing it to the search is likely an implementation error of the API's user. In the sense of failing fast, I would inform him about that with an Exception.

But I can see how that might increase the API's "mental load" if it is inconsistent with other, similar APIs.